Сравнение двух строк с получением числовой дельты

Кто-нибудь знает простой способ сравнить две строки вместе, чтобы определить «количество разницы» между ними? (в числовом значении) Я сканировал Google без особой удачи. И после некоторого кодирования это не так просто, как я думал. Какие-нибудь подсказки?

В чем разница между методом "==" и equals()
В чем разница между методом "==" и equals()
Это один из наиболее часто задаваемых вопросов новичкам на собеседовании. Давайте обсудим его на примере.
Замена символа по определенному индексу в JavaScript
Замена символа по определенному индексу в JavaScript
В JavaScript существует несколько способов заменить символ в строке по определенному индексу.
4
0
1 164
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Вы говорите о "дистанции редактирования"? Выполните поиск по «Расстояние Левенштейна», в SO или Google. Использую версию выложенную на Блог Стивена Туба

Upmod за то, что он быстрее меня. :)

Bill the Lizard 09.10.2008 22:18

Это одна из замечательных особенностей SO - я видел более ранний пост по этой теме, и он сразу же пригодился мне. Рад, что смог вернуть услугу!

Danimal 09.10.2008 22:20

Вы ищете Расстояние Левенштейна.

На 10 секунд. Это действительно много, учитывая расстояние Левенштейна между тем, что каждый из нас набирал.

Bill the Lizard 09.10.2008 22:21

Вам нужно очень четко определить «количество разницы». Там много места для маневра.

Например, старая функция C / C++ strcmp() сравнивала символ за символом и возвращала разницу в первый раз, когда они не совпадали.

С другой стороны, программа diff предоставляет исчерпывающий список различий между двумя файлами (которые, в определенном смысле, также являются строками). Как бы вы это оценили?

Вы можете посмотреть расстояния Левенштейн и Хэмминга. Один вычисляет расстояние редактирования (вставка, удаление, изменение), а другой переворачивает бит.

Другие вопросы по теме