Форум программистов, компьютерный форум, киберфорум
Наши страницы

Проверка на расстановку скобок - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Непонятен текст задания http://www.cyberforum.ru/cpp-beginners/thread950775.html
Вот задание: b) Создать абстрактный тип данных (структура) - вектор, который имеет указатель на float и число элементов. Определить функции: инициализации, удаления вектора, установки/ изменения...
C++ Указатели (нужно передать массив в качестве параметра в функцию) Добрый день! имеется массив array его нужно передать в качестве параметра в функцию, принимающую в качестве аргумента LPVOID: function(LPVOID arr), я делаю так: function(&array), в большинстве... http://www.cyberforum.ru/cpp-beginners/thread950771.html
C++ В чем разница?
Скажите в чем разница между двумя кусками кода: std::string a; while ((std::cin>>a)!="Quit") { std::cout<<a; }
Работа с классами C++
Привет!!! Есть задачка: "Определите класс Oper, содержащий идентификатор типа ld (string или C-строка) и операцию (указатель на функцию или функциональный объект). Определите класс Cat_object,...
C++ Stack со сменой представления http://www.cyberforum.ru/cpp-beginners/thread950742.html
Здорова господа!!! Есть задачка: "Напишите класс Stack, для которого можно сменить представление на стадии выполнения программы. Подсказка: "Любую проблему можно решить введя еще один уровень...
C++ Нужен кусок кода Привет всем, даже не знаю сюда ли обратился.....В общем нужен код который выполняется с момента нажатия в браузере например мозиллы CTRL+U. Где мне его взять? Если у кого есть напишите пожалуйста!... подробнее

Показать сообщение отдельно
CheshireCat
Эксперт С++
2895 / 1244 / 78
Регистрация: 27.05.2008
Сообщений: 3,397
09.09.2013, 16:10
Нет. Вот смотри, если руководствоваться изложенными правилами:
Парсер разбирает строку следующим образом:
1) - встретилась открывающая скобочка - записать ее в соответствующий стек.
2) - встретилась закрывающая скобочка - проверить есть ли в соответствующем стеке предыдущая открывающая скобочка. Если есть, то вычесть одну. Если нет, то ошибка разбора.
У нас есть стеки s1, s2, s3, s4. Анализируем строку: ([)]
Берем первую скобку: ( - она открывающая. По п.1 помещаем ее в стек - например, s1.
Берем вторую скобку: [ - она тоже открывающая, помещаем ее в стек s2.
Итого: s1 содержит (, s2 содержит [, стеки s3 и s4 пока пусты.
Разбираем строку дальше: третья скобка ) - закрывающая. По правилу п.2 выбираем открывающую скобку из стека s1 - открывающая скобочка там как раз есть.
Разбираем следующую скобку: ] - закрывающая, поэтому выбираем открывающую скобочку из стека s2 - она там как раз есть.
Строка закончена.
Все стеки у нас пусты. Вывод: скобки расставлены правильно.

А на самом деле это не так!
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru