Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2008, 17:28   #1
Акашаев Нурлан
Пользователь
 
Регистрация: 02.05.2007
Сообщений: 53
По умолчанию Самая СЛОЖНАЯ ЗАДАЧА ВО ВСЕЛЕННОЙ

здр всем кто читает. У меня есть задачка:
Так вот, дана строка, состоящая из символов '?' и '(' и ')'.
Требуется вывести все варианты преобразованной строки, где вместо вопросов стоят '(' или ')' и полученное скобочное выражение правильное.
например: (??)
ответ: (())
()()
А, кстати, длина строки составляет 254 символа
Акашаев Нурлан вне форума Ответить с цитированием
Старый 26.04.2008, 18:23   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

как такая идея алгоритма

бежим по строке считаем количество ( и количество )

для правильной формулы число ( всегда >= числа ) и в конце они должны быть равными

т.е. (как только число ( < число ) дольше проверять строчку нет смысла

встретили ?
выполняем подстановку ( и пытаемся работать дальше
выполняем подстановку ) и пытаемся работать дальше
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 26.04.2008, 18:34   #3
Акашаев Нурлан
Пользователь
 
Регистрация: 02.05.2007
Сообщений: 53
По умолчанию

Ну я сам тоже так додумался, то есть рекусривным перебором. Но этот метод у меня работает медленно. Да и проверка сложноватая
Акашаев Нурлан вне форума Ответить с цитированием
Старый 26.04.2008, 21:12   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

какие характеристики по времени для 20-30 "?" в строке сочтешь приемлимыми

дополнительное правило чмсло откр =число закр стало быть число откр <=длина строки /2
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 26.04.2008 в 21:15.
evg_m вне форума Ответить с цитированием
Старый 26.04.2008, 22:32   #5
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Если проблема только со временем, то строку забей в массив как char или byte (код символа). Т.к. с длиной массива в паскале проблема (ограничен), то возможно на динамические переменные перейти.
eoln вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложная задача asale Microsoft Office Excel 6 07.04.2009 20:36
Сложная задача....можно ли решить? Pleksy Microsoft Office Excel 1 23.02.2008 05:27
Вот ещё одна,самая сложная: felice Паскаль, Turbo Pascal, PascalABC.NET 4 03.02.2008 17:21
Простая и в то же время сложная задача fiveelement Microsoft Office Excel 1 28.10.2007 21:03