Здравствуйте, sergey2b, Вы писали:
S>у меня была задачка S>есть файл скажем G что бы небыло соблазна использовать рекурсию S>проверить что все скобки парные и правильно вложенн S>([]()) это разрещенно S>[(]) это нет
Хорошая вариация задачки, мне понравилась.
Да, тут без стека парность скобок никак не проверить. А вот как его реализовать — как раз интересно поговорить.
Для начала стоит уточнить кол-во типов скобок — круглые, квадратные и фигурные или только 2 из них (как у Сергея в условии).
Дальше есть варианты:
1) 1 или 2 бита на скобку (поддерживаем мы 2 или 3 типа), в остальном обычный стек
2) RLE-сжатие, как описал Артем, но оно не прокатит если скобки идут в перемешку: ([([([([([([([([([([
3) если стек становится слишком глубоким, выгружать начало стека (самую дальнюю часть от текущего элемента) на диск
Ну и стоит помнить, что если глубина стека превышает длину файла пополам, то можно смело останавливаться.