• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Mastering Stack<T> in C# for Coding Interviews

Lomanu4 Оффлайн

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,481
Баллы
155
? Stack in C# — Solving Problems the LIFO Way


A Stack<T> is a Last-In-First-Out (LIFO) collection — the last element added is the first one removed. It's commonly used in parsing, expression evaluation, and backtracking.

✅ When to Use Stack

Use CaseWhy Use Stack
Reversing elementsNatural LIFO behavior
Nested structures / matchinge.g., parentheses, XML, recursion stack
BacktrackingPush state, pop to revert
Undo featuresStore previous states
✍ Declaring and Using Stack


var stack = new Stack<int>();

stack.Push(10); // Add to top
stack.Push(20);
int top = stack.Peek(); // Peek top (20)
stack.Pop(); // Remove top (20)
? Iterating Through Stack


foreach (int item in stack)
{
Console.WriteLine(item);
}
? Interview Example 1: Valid Parentheses


public bool IsValid(string s)
{
var stack = new Stack<char>();
var map = new Dictionary<char, char> {
{')', '('}, {']', '['}, {'}', '{'}
};

foreach (char c in s)
{
if (map.ContainsValue(c))
stack.Push(c);
else if (map.ContainsKey(c))
{
if (stack.Count == 0 || stack.Pop() != map[c])
return false;
}
}

return stack.Count == 0;
}
? Interview Example 2: Evaluate Reverse Polish Notation


public int EvalRPN(string[] tokens)
{
var stack = new Stack<int>();

foreach (var token in tokens)
{
if (int.TryParse(token, out int num))
stack.Push(num);
else
{
int b = stack.Pop();
int a = stack.Pop();
switch (token)
{
case "+": stack.Push(a + b); break;
case "-": stack.Push(a - b); break;
case "*": stack.Push(a * b); break;
case "/": stack.Push(a / b); break;
}
}
}

return stack.Pop();
}
? Summary

FeatureSyntax Example
Declarenew Stack<T>()
Pushstack.Push(value)
Popstack.Pop()
Peekstack.Peek()
Countstack.Count
Iterateforeach (var item in stack)

Up next: Queue and Deque — perfect for BFS traversal and sliding window problems!


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

 
Вверх Снизу