ホームページ >バックエンド開発 >PHPチュートリアル >類似テキストに関するアイデア

類似テキストに関するアイデア

WBOY
WBOYオリジナル
2016-06-13 13:16:101025ブラウズ

類似テキストについての考え
今日、類似テキストについてグループ内で意見の相違がありましたが、Baidu では長い間結果が得られませんでしたが、最終的には私が書いたコードを推測した結果でした。正しいかどうかはわかりませんが、皆さんにご指導いただければと思い、ここに送信しました。
例:similar_text("Hello World", "Hello Peter");
w3cschool で得られた結果は 7 ですが、最初はこう思いました同じ一致位置は 6 しかないので、6 になるはずです
しかし、すでに位置 7 に従っていないと推測しました。
次に、位置で比較せずに比較する方法を研究し始めました。
最終的に、まだ均一ではありませんが、比較的許容できる解決策を見つけました。
各文字を順番に比較し、比較後に次のステップに進みます。 1 文字ですが、2 番目の文字列は見つかった次の位置にある必要があります。
たとえば、similar_text("021312","301221");
1. 最初の文字列の 0 番目の文字 0 と一致し、2 番目の文字列の 1 番目の位置と一致します。
2. 0 番目の文字と一致します。文字列の最初の文字 2 ですが、最初の一致位置 (0) から 2 番目の文字列の 3 番目の位置まで一致する必要があります
2. 最初の文字列 2 番目の文字 1 と一致しますが、一致する必要があります。 2 番目の一致位置 (3 番目の文字 2) から開始し、2 番目の文字列の 5 番目の位置から一致を開始します
この時点で、2 番目の文字列はすでに一致しているため、最終結果は次のようになります。 3
この分析が正しいかどうかわかりませんが、アドバイスをお願いします

-----解決策----- -------- ------
ソースコードを見れば分かりますか?
見つけたくない場合は、http://topic.csdn.net/u/20120811/20/B0FE6AE4-4970-458E-8CE3-2D4793438D2E.html を参照してください。
------解決策------------------
このようなプロセス

PHP コード
 に相当します
$a = "ハローワールド";
$b = "こんにちはピーター";
echo like_text($a, $b), '<br />';
$i = 0;
$j = 0;
while($i<strlen if for class="clear"></strlen>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。