Re[4]: Наименьшая подстрока содержащую заданную подпоследовательность
От: Artazor Латвия  
Дата: 16.11.12 14:19
Оценка:
Здравствуйте, watch-maker, Вы писали:

WM>Вообще, такой подход мне не нравится. Например, он может очень плохо работать в случае появления лишних символов в needle, которые с чем-нибудь там совпадут в тексте.


Поэтому я и рассказал контекст, т.к. было весьма похоже, что всю задачу можно решить одним проходом, но я как в анекдоте про "выливаем воду из чайника, и приводим задачу к известной".

WM>Всё же лучше считай сразу расстояние Дамеро-Левенштейна между полным образцом и полным текстом. Просто возьми эти граничные условия:

WM>Можно начинать с любого символа из haystack — на соответсвующей стороне матрицы будут нули (а не 0,1,2,3,… как в Левенштейне);

Это легко.

WM>> Можно закончить на любом символе из haystack (а не только в углу матрицы)


Я правильно понимаю, что при поиске окончания, я отбрасываю начальную квадратную матрицу размера Needle (типа Needle должен быть прочитан весь)
А потом ищу минимум по последней строчке, расположенной вдоль Haystack.
Если матрицу нельзя отбросить, то результат (расстояние) — это угловой элемент.

Ну а потом уже оттуда и разматываю.
?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.