3
サフィックス配列を使用して2つの文字列の最長共通部分文字列を計算する
複雑さで接尾辞配列を作成する方法を学んだ後、接尾辞配列の用途を発見することに興味があります。これらの1つは、時間で2つの文字列間の最長共通部分文字列を見つけることです。インターネットで次のアルゴリズムを見つけました。O(N)O(N)O(N)O(N)O(N)O(N) 2つの文字列とBを1つの文字列ABにマージしますAAABBBABABAB ABの接尾辞配列を計算しますABABAB LCPLCPLCP(最長共通プレフィックス)配列を計算します 答えは最大値LCP[i]LCP[i]LCP[i] 私はそれを実装しようとしましたが、多くの実装の詳細は言われていなかったので(つまり、文字列を連結するとき、それらの間に特殊文字を入れる必要があります()?)、私のコードは多くのテストケースで失敗しました。誰かがこのアルゴリズムについて詳しく説明できますか?AcBAcBAcB 前もって感謝します。 注:このアルゴリズムの正確性は保証しません。私はブログでそれを見つけました、そして、それが機能していると確信がありません。間違っていると思われる場合は、別のアルゴリズムを提案してください。