Работа со стеком с# - C#
Формулировка задачи:
Сначала я задаю последовательность скобок
потом проверяю условие сколько пользователь их ввёл, если 4, то обращаюсь к каждой скобки и удаляю её из "коробки". Но дело в том, что программа не работает, я ввожу правильную последовательность, а оно мне выдаёт неверное количество элементов. и ещё п=мне захотелось, что бы в коде был вывод по одному элементу. что не так?
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _1 { class Program { static bool WellFormed(string Consistency) { //Создание и заполнение стека-образца Stack<char> SampleStack = new Stack<char>(); SampleStack.Push('{'); SampleStack.Push('}'); SampleStack.Push('['); SampleStack.Push(']'); // Создание и заполнение основного стека Stack<char> Stack = new Stack<char>(Consistency); for (int i = 0; i < Consistency.Length; i++) { if (Consistency[i] == '<' | Consistency[i] == '>' | Consistency[i] == '[' | Consistency[i] == ']') { Stack.Push(Consistency[i]); } } // проверка количества введенных символов if (Stack.Count == 4) { foreach (char s in Stack) { if (Stack.Pop() == SampleStack.Pop()) { return true; } else { return false; } } int c = 1; // выводят из стека по одному элементу do { Stack.Pop(); // SampleStack.Pop(); // c++; } while (Stack.Peek() == SampleStack.Peek() && c < 4); //работа с ним продолжается только если они совпадут // или если количество символов меньше 4 } else { Console.WriteLine("Неверное количество вимволов"); return false; } throw new Exception(); } static void Main(string[] args) { Console.WriteLine("Введите последовательность скобок для проверки"); string aString; aString = Console.ReadLine(); if (WellFormed(aString)) Console.WriteLine("Последовательность {0} правильно построена", aString); else Console.WriteLine("Последовательность {0} не правильно построена", aString); Console.ReadKey(); } } }
Решение задачи: «Работа со стеком с#»
textual
Листинг программы
throw new Exception();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д