|
1 / 1 / 0
Регистрация: 02.11.2014
Сообщений: 57
|
||||||
Проверить, является ли последовательность скобок корректной21.05.2017, 20:12. Показов 4794. Ответов 8
Метки нет (Все метки)
Здравствуйте, нашел на просторах интернета такую задачу. Нам даны строки, содержащие скобки 4 видов - круглые (), квадратные [], фигурные {} и угловые <>. Задача в том, чтобы проверить является ли последовательность скобок корректной. Т.е. любая открывающая скобка должна иметь закрывающую того же типа где-то дальше по строке - и кроме того пары скобок не должны пересекаться, хотя они могут быть вложенными:
(a+[b*c] - {d/3}) - здесь квадратные и фигурные скобки вложены в круглые (a+[b*c) - 17] - а здесь "область действия" круглых и квадратных пересекается, что некорректно Входные данные указывают количество тестов в первой строке. Далее идет указанное количество строк, содержащих по одной символьной последовательности. Ответ должен содержать для каждого теста 1 если скобки расставлены верно или 0 если нет. Вот моё решение:
18 <x>{<[^]v>{< >*[d(f)[d](x[a])]}{u}[/]<x([ ]z<(f)z{v}>)>}[z]<+>< > [g][<<>%(b)]{[ ][(<{y}y>g)<< >/>y]{d}}{+(fa>u)} (f)[][(-){w((+)c)}d]( )(c) v}<(*)e>< ><(+)*> [<]<h>(*)[[(z)x]{a}<[c]</>v> u><(+(h)){*}g>]<{ (b)(t)}e> {}[[e](v{g})(d(%(+))(c)(w))e(z)[(b)h]]{</>x[d]}(<z>b[(/)a])(c)[ ] < ><>[[c[{/}[g](/) ]<<c>b<t>>][ [u]]{z(*)}e{e}]{-}< > <>[g]{-}[{/}c](c){f{*}[v{w}]}{^{t[(h)^]}}{f}{x} [[%] [<[t]w{ }{ }>u]{h}{^(b)([^] )<z>}(a)]<^>[(/)((+)-)]<[(-)c]t> (a<{(%)d}b>)(<c>x)[(<->({d[c]}/)(a)[a]( )v)<c>](+) ()<</>t><[{v){+[a[+][+]]}[ ( }(/<e{t<h>}>)[-]][z]-](a)[ ]*>{-} <{%}(x)<<(h{w} c[*<b><y>])(d))u<a</>>{b}>+>< < [d{^}][*]>>> <{/}f>({b}b{e(d)}{%})(f)(<d((c){y{b}}-)<*>>)(d) <y>[(c<(z)z(w{/}[ ](^))<w>(t)[<c>{d} ]>)<d>{^}{ }%{f}<g>]() [(<t>{-} <g>)]{z}<[e]t{x}(b){-}{x}>{[v][a]z}[x[-]{<*>[c]c{b}}] [/[t]]<t><g><b><>(w[(d){^}y(%)[t]]<{{b}t}[-]{a<v>}t<g>>{+}){u} <(<<f(y)> <v>(b)>[z(*)]f)[*](b){(v)(a)[{a}a](+)b(u)}><v> ((e){a[/]{w}}(x v)(x)[<c>y](g[{ }[-]c[v]]))(f(^)))<b> { <b><y><y>([[g]+]f{c}){<%>{[v]u}h}}()[(<[d]({*}{d}-) >%)a]{[g]e} Мой ответ: 1 1 0 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 Правильный ответ: 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 Где ошибка? И почему сin >> NumberTestCases; и getline(cin, str1); при первой итерации работают не так как я хочу XD Ну то есть getline "хватает число в начале входных данных" И почему у меня первое число всегда 1 в ответе? Почему первый проход происходит с пустой строкой? из-за этого у меня числе в ответе больше
0
|
||||||
| 21.05.2017, 20:12 | |
|
Ответы с готовыми решениями:
8
Определить, является ли последовательность корректной записью даты Является ли последовательность скобок корректной Определить, является ли формула корректной относительно использованных в её записи скобок |
|
0 / 0 / 0
Регистрация: 20.06.2017
Сообщений: 2
|
|
| 20.06.2017, 13:53 | |
|
IramKenZo, у тебя получилось найти решение? Я тоже неделю не могу решить аналогичную задачу.
0
|
|
|
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
|
||||||
| 20.06.2017, 15:16 | ||||||
0
|
||||||
|
Супер-модератор
|
|
| 20.06.2017, 15:49 | |
|
Эту задачу нужно решать так: завести стек для хранения char-ов. Затем читаем строку символ за символом. Встретив "([{<", заносим символ в стек. Встретив ")]}>" выталкиваем символ из стека. Если перед выталкиванием стек пуст - скобки не на балансе. Если открывающая скобка не соотв. закрывающей - то нарушение области действия. Если после просмотра всех символов в стеке что-то осталось, то скобки не на балансе. Остальные символы входной строки (кроме скобок) пропускаем.
1
|
|
|
1 / 1 / 0
Регистрация: 02.11.2014
Сообщений: 57
|
|
| 20.06.2017, 20:49 [ТС] | |
|
S_Perekrestova, да, все дело в том, что в потоке остается символ новой строки. Его нужно проигнорировать. Решается так cin >> NumberTestCases; => (cin >> NumberTestCases).get();
1
|
|
|
0 / 0 / 0
Регистрация: 20.06.2017
Сообщений: 2
|
|
| 20.06.2017, 21:35 | |
|
IramKenZo, А-н, нет, всё равно промахивается местами.
0
|
|
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
||||||
| 21.06.2017, 14:24 | ||||||
|
IramKenZo, написал для вас программу. Надеюсь, подходит:
1
|
||||||
|
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
|
||||||
| 21.06.2017, 17:47 | ||||||
0
|
||||||
|
848 / 651 / 323
Регистрация: 24.02.2017
Сообщений: 2,297
|
||||||
| 21.06.2017, 21:26 | ||||||
0
|
||||||
| 21.06.2017, 21:26 | |
|
Помогаю со студенческими работами здесь
9
Определить, является ли формула корректной относительно использованных в её записи скобок Определить, является ли формула корректной относительно использованных в её записи скобок
Проверить, является ли последовательность знакочередующейся
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|