Допустим, есть слова-анаграммы:
AABB = ABAB, ABBA, BBAA
Теперь, в некоторых из них сделали опечатки:
AABB ~= ABAB, ABBB, BDAC
Проценты опечаток (относительно AABB): 0%, 25%, 50%.
По порогу ошибки, превышающей 25%, отсеиваем только последнее слово: BDAC.
Т.е., будет так.
Допустимый порог ошибки 25% (1 ошибка на 4 символа):
AABB ~= ABAB, ABBB
(это конечный результат)Вопрос:
Как максимально быстро детектировать анаграммы, если в словах допущена одна или несколько опечаток с нужным порогом ошибки?
Длина слов - может быть любой, процент опечаток - может быть задан произвольно.UPD: Примеры опечаток (сравнение анаграмм и количество опечаток):
AABB и AAB => 1 (недостающий символ)
AABB и AABBA => 1 (лишний "свой" символ)
AABB и AABBC => 2 (лишний "чужой" символ)
Вопрос задан
более трёх лет назад
158 просмотров