3 / 3 / 4
Регистрация: 11.11.2009
Сообщений: 41
|
||||||
1 | ||||||
Задача : "Скобочки".26.11.2011, 18:37. Показов 4109. Ответов 18
Метки нет (Все метки)
Некоторые скобочные структуры правильные, другие — неправильные. Ваша задача — определить правильная ли скобочная структура.
Вход: Слово в алфавите из двух круглых скобочек ( и ). Длина слова меньше 4001. Выход: Либо 'NO', либо 'YES' без кавычек. ВХОД #1: () ВЫХОД #1: YES ВХОД #2: )( ВЫХОД #2: NO ВХОД #3: ()(())() ВЫХОД #3: YES http://acm.mipt.ru Собственно вот мой код:
0
|
26.11.2011, 18:37 | |
Ответы с готовыми решениями:
18
Зачем нужны скобочки? Найти скобочки () в строке текста Скобочки) Скобочки Требуются скобочки |
542 / 447 / 162
Регистрация: 10.12.2009
Сообщений: 1,857
|
||||||
26.11.2011, 18:55 | 2 | |||||
попробуйте решать эту задачу, используя стек.
В нем будете хранить только открывающиеся скобки. При нахождении закрывающейся скобке в строке, выбрасываете элемент из стека, если он есть. В конце концов, если строка верная последовательность, стек будет пуст!
P.S. Контестер это решение принял =)
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
26.11.2011, 18:57 | 3 |
Сообщение было отмечено как решение
Решение
turtLe, Вот Вам в помощь тест:
()(( А задача решается намного проще: - считали строку в str - int k=0; - потом проходите строку от начала до конца: если попалась скобка ( , то k++; если попалась скобка ) , то k--; Если во время такого прохода k стало отрицательным, или по окончании не равно 0, то ответ NO, иначе YES
6
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
||||||
26.11.2011, 19:01 | 4 | |||||
Сообщение было отмечено как решение
Решение
valeriikozlov, Не по теме: ну мы с вами прям как кошка с собакой:)
4
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
26.11.2011, 19:03 | 5 |
0
|
542 / 447 / 162
Регистрация: 10.12.2009
Сообщений: 1,857
|
|
26.11.2011, 19:08 | 8 |
valeriikozlov, можно еще упростить - просчитывать все на стадии заполнения, посимвольно!
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
26.11.2011, 19:20 | 11 |
0
|
...
|
||||||
26.11.2011, 20:36 | 14 | |||||
Ошибка в том, что алгоритмом не предусмотрен вариант строки, когда закрывающих скобок вообще нет. Например, "((((" - выдает "YES", а должен "NO".
Возможно, если исправить как ниже, то будет работать правильно. Но не факт. А лучше использовать выше предложенный алгоритм - он и по быстродействию лучше.
1
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
26.11.2011, 21:10 | 15 | |||||
Подытоживая вышесказанное:
Код
[nameless@desktop c]$ ./sample '((' '))' '(()((())))' '())' '()(' '()()(())' ')' ')(' '()' "((": NO "))": NO "(()((())))": YES "())": NO "()(": NO "()()(())": YES ")": NO ")(": NO "()": YES [nameless@desktop c]$
1
|
542 / 447 / 162
Регистрация: 10.12.2009
Сообщений: 1,857
|
|
26.11.2011, 21:16 | 16 |
Ага, я решал когда - то задачу с четырьмя видами скобок ( " ( { [ < " ), где нужно было добавить минимальное число скобок, чтобы получилось правильное скобочное выражение.
0
|
3 / 3 / 4
Регистрация: 11.11.2009
Сообщений: 41
|
|
27.11.2011, 08:22 [ТС] | 17 |
Спасибо всем за Ваши ответы, разобрался
0
|
1 / 1 / 0
Регистрация: 02.09.2012
Сообщений: 15
|
||||||
02.10.2012, 22:14 | 18 | |||||
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
03.10.2012, 00:53 | 19 |
0
|
03.10.2012, 00:53 | |
03.10.2012, 00:53 | |
Помогаю со студенческими работами здесь
19
Задачка про скобочки Про скобочки в request, jquery ajax Как вырезать из текста первые квадратные скобочки? Visual Studio 2022 неверно видит скобочки После установки Windows 7 компьютер выдает скобочки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |