Exemplo n.º 1
0
        /*
         * Дан текстовый файл с программой на алгоритмическом языке. За один просмотр
         * файла проверить баланс квадратных скобок в тексте, используя дек.
         */
        public static bool Task5(string[] text)
        {
            var deq = new MyDeque <char>();

            foreach (var str in text)
            {
                foreach (var ch in str)
                {
                    if (ch == '[')
                    {
                        deq.Dequeue(ch);
                    }
                    if (ch == ']')
                    {
                        deq.Enqueue(ch);
                    }
                }
            }
            while (deq.Count > 1)
            {
                if (deq.PopHead() == '[' && deq.PopTail() == ']')
                {
                    deq.RemoveFirst();
                    deq.RemoveLast();
                }
                else
                {
                    return(false);
                }
            }
            if (deq.IsEmpty())
            {
                return(true);
            }
            return(false);
        }