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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2009, 02:16   #11
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Цитата:
Сообщение от Min Посмотреть сообщение
а наиболее рациональный способ кстати это вроде стек......

ой...... да тут уж месяц прошел)))))
Ну да. Нужно, что бы для каждой открывающей скобки после нее на том же уровне вложености первой шла закрывающая того же типа. Задача на проверку правильности скобочной последовательности. В стек загонять открывающие скобки и каждый раз для закрывающей смотреть, закрывает ли текущая скобка последнюю открытую в стеке, если да - удалять последнюю из стека, иначе ошибка. Решения с посом/делетом и прочими многопроходными алгоритмами сдесь очень красиво падают на ТЛ.
З.Ы. Страшно даже смотерть, сколько времени прошло. Но вдруг кому-небудь пригодиться.
LeBron вне форума Ответить с цитированием
Старый 30.11.2009, 08:44   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
очень красиво падают на ТЛ.
где падают?..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.11.2009, 08:55   #13
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
где падают?..
ТЛ=TL=Time Limit
pos/delete работают явно не за О(1), там О(n) (надо просмотреть количество символов, равное части от общего числа, и потом переместить число символов, тоже прямо зависящее от общего числа). В результате получиться квадрат, хотя и с константой меньше 1. Хотя можно переписать собственный pos, использовав таблицу псевдо-хеш, потом отсортировав ее за n*log(n), потом все время использовать бинарку за log(n), но все равно остаеться delete... Можно и с ним разобраться, выбросив ввобще, свести к О(1), использовав указательные масивы для дополнения и були для удаления (если честно, даже не уверен, что в паскале такое не реализированно в самой процедуре delete, но не думаю, что все там так сложно ). Все равно в результате проходит довольно рисковано, а код сильно извращенный получиться, лучше уж стеком.
LeBron вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачка Cvieri Microsoft Office Excel 9 08.10.2008 19:44
Задачка Rusl92 Паскаль, Turbo Pascal, PascalABC.NET 7 25.09.2008 16:01
C++ олимпиадная задачка LastDragon Помощь студентам 1 19.06.2008 23:04
Олимпиадная задача Carbon Общие вопросы C/C++ 2 23.05.2007 22:07