.NET 3.x Добавить числа в скобочное выражение, чтобы получилось правильное арифметическое выражение - C#
Формулировка задачи:
1.Дана последовательность из N круглых, квадратных и фигурных скобок. Выяснить, можно ли добавить в неё цифры и знаки арифметических действий так, чтобы получилось правильное арифметическое выражение.
Ограничения: 1 <= N <= 100 000.
Ввод: В первой строке находится число скобок N, во второй - N символов из набора (, ), [, ], {, }.
Вывод: Выводится слово "Yes", если получить правильное арифметическое выражение можно, или "No", если нельзя.
Примеры
Ввод 1 Ввод 2
6 24
([())] {[()([]{})[]]({}{{}})}[]
Вывод 1 Вывод 2
No Yes
2.Требуется написать программу, которая выполняет t запросов по возведению целых чисел n, в целую степень ki, где i принадлежит [1..t] методом бинарного возведения в степень.
Ввод: в первой строке натуральное число t - количество запросов. Далее сами запросы в формате n, ki, разделенные пробелом.
Решение задачи: «.NET 3.x Добавить числа в скобочное выражение, чтобы получилось правильное арифметическое выражение»
textual
Листинг программы
static void Main() { int length = int.Parse(Console.ReadLine()); var stack = new Stack<char>(length); for (int i = 0; i < length; i++) { char input = (char)Console.Read(); if (input == '(' || input == '{' || input == '[') stack.Push(input); else if (stack.Count == 0 || stack.Peek() != Match(input)) break; else stack.Pop(); } Console.WriteLine(stack.Count == 0 ? "YES" : "NO"); } static char Match(char input) { switch (input) { case ')': return '('; case ']': return '['; case '}': return '{'; default: return '\0'; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д