![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
Тёмный Эльф |
![]() ![]()
Сообщение
#1
|
![]() Влюблённый псих ![]() ![]() ![]() Группа: Пользователи Сообщений: 185 Пол: Женский Реальное имя: Лейла Репутация: ![]() ![]() ![]() |
Хочу написать прогу, которая разбирает выражения со скобками, например, если
(6[0)888]{99} значит, прога выводит (6[0) [0)888] {99} возникла проблема с алгоритмом. Предположим, выражение представлено ввиде строки. Тогда я ищу первую открывающуюся скобку с начала строки, а затем соответствующую ей закрывающуюся скобку с конца строки и вывожу все ,что между ними, затем ищу вторую открывающуюся скобку ит.д. НО если я введу такое выражение [6(7]8[9]), то если действовать по этому алгоритму выведется совсем не то, что надо, а именно, [6(7]8[9] (7]8[9]) [9] а ведь должно быть [6(7] (7]8[9]) [9] Подскажите, как быть в такой ситуации? Сообщение отредактировано: Тёмный Эльф - 19.04.2007 23:43 |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
(ma(da)ma)
первая открывающаяся скобка - счетчик присвоим 1... mа - пропускаем вторая открывающаяся - увеличим счетчик ( = 2 ) da - пропустили одна скобка закрылась, уменьшить счетчик ( = 1 ) ... продолжать до тех пор, пока счетчик не будет равен 0... А случится это на второй закрывающей скобке... Это и будет скобка, закрывающая первую открытую... |
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 12:57 |