【解決方法】文字列で最も長い回文


やあ

文字列内で最も長い回文部分文字列を見つける最良の方法を教えてください。
説明してください。リンクはたくさんありますが、理解できません

解決策 1

この問題については良い話があり、ここでかなり最適なアルゴリズムが完成しています:
http://www.akalin.cx/longest-palindrome-linear-time[^]

これは、中心から回文を探すことによって機能します。これは、「:doh:! なぜ私はそれを考えなかったのですか?」と思わせるような素晴らしいアイデアです。

読者が C で実装するための演習として残しておきますが、ツリーはまったく必要ありません。

解決策 4

これが課題である場合、問題を解決するには Manacher のアルゴリズムについて知る必要があると思います。

それ以外の場合は、楽しみのためにそれを行っている場合は、簡単にするために、以下の手順を使用して目的を達成することもできます。
ステップ 1: 文字列内のすべての回文を見つけます。
ステップ 2 : 見つけた回文文字列のそれぞれの文字を数えます。
ステップ 3: おめでとうございます。最大の回文テキストが見つかりました。

コメント

タイトルとURLをコピーしました