Определение правильности скобок - C#
Формулировка задачи:
Люди помогите плз! Необходимо осуществить возможность введения скобок с консоли, поместить их в стек и потом определить, правильна ли последовательность этих скобок. Вот вроде бы код но я не могу понять как занести то что ввел с клавы в стек, и как брать следующий член стека
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace ConsoleApplication23 { class Program { static bool WellFormed(string astr) { char xi, xj; Stack<char> stack1 = new Stack<char>(); for (int i = 0; i < astr.Length; i++) stack1.Push(astr[i]); while (stack1.Count > 0) { xi=stack1.Peek(); if (xi = '{' | xi = '[') stack1.Push(xi); else stack1.Pop(); if (xi!=xj) Console.WriteLine("Nepravilno"); //Переместиться на 1 элемент вправо } if (stack1.Count == 0) Console.WriteLine("Pravilno"); else Console.WriteLine("Nepravilno"); } static void Main(string[] args) { string astr; astr = Console.ReadLine(); WellFormed(astr); } } }
Решение задачи: «Определение правильности скобок»
textual
Листинг программы
static void CheckBrackets(string text) { Stack<char> stack = new Stack<char>(); foreach(Char c in text) switch (c) { case '}': if (stack.Pop() != '{') throw new Exception("Лишняя закрывающая скобка '}'"); break; case ']': if (stack.Pop() != '[') throw new Exception("Лишняя закрывающая скобка ']'"); break; case '[': case '{': stack.Push(c); break; } if (stack.Count > 0) throw new Exception("Не найдена закрывающая скобка для " + stack.Pop()); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д