gregzem
Гуру форума
- Регистрация
- 21 Окт 2007
- Сообщения
- 202
- Реакции
- 66
- Автор темы
- #1
Задача навеяна вот этой темой: Для просмотра ссылки Войди или Зарегистрируйся
Есть две строки, у которых встречаются общие фрагменты. Условно - две HTML страницы (по ~90Kb). Задача - найти эти подстроки.
Цитата из вышепреведенного топика.
То есть находим наиболее длинный кусок текста, одинаковый в обеих страницах и выкидываем его. Затем следующий. И так далее, пока, скажем, не останется общий фрагмент длиной менее N байт (например, 10).
Написать, оказалось проще, чем реализовать.
Есть такой алгоритм - Для просмотра ссылки Войдиили Зарегистрируйся. Он как раз и позволяет найти эту максимально-длинную подстроку.
И все бы ничего, но на поиск в двух подстроках размером по 90Kb выделяется двумерный массив в 7,5Gb. Что, имхо, многовато. C# на это сразу посылает.
Есть какие-нибудь идеи, как еще можно реализовать поиск наиболее длинной подстроки?
Есть две строки, у которых встречаются общие фрагменты. Условно - две HTML страницы (по ~90Kb). Задача - найти эти подстроки.
Цитата из вышепреведенного топика.
Наиболее простой вариант видится следующим: необходимо проанализировать N страниц сайта. Из каждой страницы выкинуть повторяющиеся элементы (например, футер).
То есть находим наиболее длинный кусок текста, одинаковый в обеих страницах и выкидываем его. Затем следующий. И так далее, пока, скажем, не останется общий фрагмент длиной менее N байт (например, 10).
Написать, оказалось проще, чем реализовать.
Есть такой алгоритм - Для просмотра ссылки Войди
И все бы ничего, но на поиск в двух подстроках размером по 90Kb выделяется двумерный массив в 7,5Gb. Что, имхо, многовато. C# на это сразу посылает.
Есть какие-нибудь идеи, как еще можно реализовать поиск наиболее длинной подстроки?