0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 12
|
|
1 | |
Проверить, имеется ли в заданном тексте баланс открывающих и закрывающих круглых скобок16.09.2012, 19:16. Показов 2442. Ответов 11
Метки нет (Все метки)
Доброе время суток уважаемые программисты.
Есть такая задачка, нужно написать на ассемблере: Проверить, имеется ли в заданном тексте баланс открывающих и закрывающих круглых скобок, т.е. верно ли, что можно установить взаимно однозначное соответствие открывающих и закрывающих скобок со следующими свойствами a) открывающая скобка всегда предшествует соответствующей закрывающей. b) первый и последний символы текста-пара соответствующих друг другу скобок. Заранее спасибо за помощь.
0
|
16.09.2012, 19:16 | |
Ответы с готовыми решениями:
11
Проверить в заданном тексте баланс открывающихся и закрывающихся круглых скобок Проверить, имеется ли в заданном тексте баланс открывающих и закрывающих круглых скобок Проверить, имеется ли в заданном тексте баланс открывающих и закрывающих круглых скобок Проверить, имеется ли в заданном тексте баланс открывающих и закрывающих круглых скобок |
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
|
|
16.09.2012, 23:13 | 2 |
Код писать не буду, ибо он прост.
Алгоритм для строк ASCIIZ: 1. Читаем первый символ и сравниваем с символом открывающей скобки. Если равно, то идем дальше. Если нет - выходим с ошибкой 2. В цикле перебираем символы, пока не увидим нулевой символ. Если символ равен '(', то прибавляем к счетчику(это такая особая переменная, о заведении которой надо позаботиться) 1, если ')', вычитаем 1. 3. Если находим нулевой символ, то проверяем символ перед ним. Если закрывающая скобка, идем далее. Если нет - выходим с ошибкой 4. Проверяем значение счетчика. Если 0, то всё ОК. Если не 0, говорим, что баланс нарушен. Вот и всё
1
|
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 12
|
|
18.09.2012, 18:33 [ТС] | 3 |
спасибо, но именно проблемы в написании кода.
0
|
155 / 125 / 3
Регистрация: 22.06.2011
Сообщений: 1,784
|
||||||
18.09.2012, 20:05 | 4 | |||||
Не тестировал...
0
|
19.09.2012, 18:07 | 5 | |||||
HITMAN, а если такую строку ввести: )))((( ?
Такие задачи через стек элементарно решаются. Либо тут:
0
|
155 / 125 / 3
Регистрация: 22.06.2011
Сообщений: 1,784
|
||||||
19.09.2012, 18:29 | 6 | |||||
Kastaneda,
Не тестировал...
Добавлено через 3 минуты Асм - куча способов решить поставленную задачу!
0
|
19.09.2012, 18:52 | 7 |
Да, не совсем верно выразился, имелось ввиду стек - структура данных LIFO. Удобно использовать, когда скобки не ограничиваются круглыми, а например используется полный набор (){}<>[].
0
|
155 / 125 / 3
Регистрация: 22.06.2011
Сообщений: 1,784
|
||||||
19.09.2012, 19:09 | 8 | |||||
Не тестировал...
0
|
19.09.2012, 19:15 | 9 |
Очепятка в коде, вместо скобок [] дважды скобки <> используются.
Не по теме: там (в соседней ветке) еще фигурировала ссылка на статью 47 УПК, я вот связи не понял.
0
|
155 / 125 / 3
Регистрация: 22.06.2011
Сообщений: 1,784
|
|
19.09.2012, 19:22 | 10 |
Кому понадобиться тот догадается исправить!
0
|
155 / 125 / 3
Регистрация: 22.06.2011
Сообщений: 1,784
|
||||||||||||||||
19.09.2012, 21:44 | 12 | |||||||||||||||
Не тестировал...
Добавлено через 17 минут Kastaneda, Не тестировал, но уменьшил...
Добавлено через 1 час 1 минуту Протестировал работает норм...
0
|
19.09.2012, 21:44 | |
19.09.2012, 21:44 | |
Помогаю со студенческими работами здесь
12
Проверить, имеется ли в заданном тексте баланс открывающих и закрывающих круглых скобок Проверить, имеется ли в заданном тексте баланс открывающих и закрывающих скобок Проверить, имеется ли в заданном тексте баланс открывающих и закрывающих скобок Имеется ли в тексте баланс открывающих и закрывающих скобок Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |