#design-patterns #distance #levenshtein-distance
#шаблоны проектирования #расстояние #левенштейн-расстояние
Вопрос:
Я хочу найти различия между двумя строками. Например, если
line1 = "My name is ABC"
line2 = "My age is xyz"
Тогда я должен быть в состоянии получить различия, которые называются age и ABC — xyz.
Я думаю, что могу использовать расстояние Левенштейна, но не могу понять это. Любая помощь приветствуется.
Ответ №1:
<?php
$line1 = "My name is ABC";
$line2 = "My age is xyz";
$matchlen = strspn($line1, $line2);
// remove 1st non-matching char
$same = substr($line1, 0, $matchlen - 1);
// include 1st non-matching char
$diff = substr($line2, $matchlen - 1);
printf("Same: [%s]nDiff: [%s]", $same, $diff);
?>
Комментарии:
1. Это не будет работать корректно, потому что первое различие не совпадает по длине:
name : 4
иage : 3