Подскажите, если какая-нибудь функция выдающая либо максимальное совпадение двух строк, либо максимальную разницу? Если вообще какая-нибудь теория по этому поводу? Например, что максимальное различие при каких-либо условиях определяется однозначно. Или может кто-то сам пытался реализовать такой алгоритм?
Пример такой: Завтра утром будет облачно, без осадков. Температура +2 - +4. Завтра утром будет снег с дождем. Температура -1 - +1. Макс совпадение ="Завтра уторм будет " В идеале хочется подсветить неизменившиеся части строк, например, длина которых > 3 символов
Вот так по другому могу сформулировать вопрос: Есть ли функция которая выдает совпадение строк начиная с их начала?
PHP: <? function CompareString($str1,$str2) { $l = min(strlen($str1),strlen($str2)); for($i=0;$i<$l;$i++) { if($str1[$i] != $str2[$i]) return $i; } return 0; } $str1 = 'Завтра утром будет облачно, без осадков. Температура +2 - +4. '; $str2 = 'Завтра утром будет снег с дождем. Температура -1 - +1. '; $cmp = CompareString($str1,$str2); if($cmp) { print("\nНачало расхождения: ".$cmp); print("\nОбщая подстрока : [".substr($str1,0,$cmp)."]"); } else { print("\nСтроки разные"); } ?> Код (Text): #>php ttt.php Начало расхождения: 19 Общая подстрока : [Завтра утром будет ]
440hz Большое спасибо, за код. Просто я думал есть какие-то стандарьные функции. А еще нашел вот какую интересную функцию - levenshtein. Но она не так полезна оказалась как Ваш код