![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Форумчанин
Регистрация: 08.08.2010
Сообщений: 371
|
![]()
Здравствуйте, недавно попалась такая задачка...
Дана строка такого вида: <aa>...</aa>... под знаком ... понимается что там может быть несколько таких строк или их отсутствие. В этой строке изменен 1 символ таком образом что данная последовательность тегов стала неверной. Например: <abc><a></a></ab/> Нужно восстановить эту строку до нормального состояния. длина строки от 7 до 1000 символов. Один из вариантов решения состоит в том, чтобы по ходу прохождения по строке, заменять в ней читаемый символ на один из символов алфавита или "<", ">", "/"... и проверять стала ли данная строка верной. Меня интересует, есть ли другое решение? Я только смог поиском неправильных скобок ("<</", "><>"....) и заменой их на нужные решить данную задачку, но найти и заменить буквы я не смог.
Хакинг - не преступление, а способ выживания.
|
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Закрывающий тег обязателен?
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 08.08.2010
Сообщений: 371
|
![]()
да обязателен
Хакинг - не преступление, а способ выживания.
|
![]() |
![]() |
![]() |
#4 |
a.k.a. Skull
Форумчанин
Регистрация: 17.11.2009
Сообщений: 963
|
![]()
Ну я думаю так. Сначала проверяешь, одинаково ли количество символов "<" и ">", если нет, то ищешь, когда после ">" появляется ">" и наоборот. Потом проверяешь, что-бы небыло третьего ">" ("<"), если есть меняешь стредний, нет - подбором подставляешь нужный символ в найденый промежуток.
Если изменили букву, то считываешь открывающий тэг и ищешь к нему закрывающий. в итоге одна пара тэгов останется без совпадений, с ней и работаешь.
Все тривиальное просто
Последний раз редактировалось whatever; 22.01.2012 в 16:21. |
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 08.08.2010
Сообщений: 371
|
![]() Цитата:
Хакинг - не преступление, а способ выживания.
|
|
![]() |
![]() |
![]() |
#6 | |
a.k.a. Skull
Форумчанин
Регистрация: 17.11.2009
Сообщений: 963
|
![]()
Из этой фразы я сделал вывод, что у тебя есть некоторый алгоритм проверки правильности строки.
Цитата:
Кстати, было бы проще, если бы ты указал язык. Тэги то понятно, что из html, но врядли описаные тобой (да и мной тоже) действия можно проводить по средствам языка разметки гипертекста.
Все тривиальное просто
Последний раз редактировалось whatever; 22.01.2012 в 21:59. |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ВАРИАНТЫ ПАРСИНГА | Vova777 | Общие вопросы Delphi | 2 | 04.09.2010 23:51 |
Варианты решения задачи. | Cave_IAR | Общие вопросы C/C++ | 5 | 16.08.2010 16:45 |
подскажите варианты решения | leozay | Microsoft Office Excel | 10 | 26.08.2009 21:24 |
Варианты курсора(Delphi) | IGoDoVaN | Помощь студентам | 25 | 18.02.2009 21:48 |