ホームページ >バックエンド開発 >PHPチュートリアル >類似テキストに関するアイデア
類似テキストについての考え
今日、類似テキストについてグループ内で意見の相違がありましたが、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 を参照してください。
------解決策------------------
このようなプロセス
に相当します $a = "ハローワールド"; $b = "こんにちはピーター"; echo like_text($a, $b), '<br />'; $i = 0; $j = 0; while($i<strlen if for class="clear"></strlen>