Я ищу алгоритм, предпочтительно на Python, который помог бы мне найти подстроки длиной N символов из существующих строк, которые ближе всего к целевой строке длиной N символов.
Рассмотрим целевую строку, например, длиной 4 символа:
targetString -> '1111'
Предположим, что это строка, которая у меня есть (я сгенерирую ее подстроки для соответствия «наилучшему выравниванию»):
nonEmptySubStrings -> ['110101']
Подстроки выше, длиной 4 символа:
nGramsSubStrings -> ['0101', '1010', '1101']
Я хочу написать / использовать «магическую функцию», которая выберет строку, ближайшую к targetString:
someMagicFunction -> ['1101']
Еще несколько примеров:
nonEmptySubStrings -> ['101011']
nGramsSubStrings -> ['0101', '1010', '1011']
someMagicFunction -> ['1011']
nonEmptySubStrings -> ['10101']
nGramsSubStrings -> ['0101', '1010']
someMagicFunction -> ['0101', '1010']
Является ли эта "магическая функция" хорошо известной проблемой подстроки?
Я очень хочу найти мин. количество изменений в nonEmptySubStrings, чтобы в качестве подстроки в нем была targetString.