アルゴリズムの問題が 1 つ見つかりました。私はその問題を解決しましたが、それを最適化したいです。ここで同じ問題を尋ねます。
問題
1 つの文字列が指定され、その文字列の長さはN <= 10000000です。その文字列のすべての文字は'a' から 'z'です。次に、末尾に文字を追加して、指定された文字列から作成できる最小の回文を計算する必要があります。
例
与えられた文字列 = 'abab'
出力 = 'アババ'
理由: 文字列には、文字列の先頭と末尾の両方から始まる文字列ababa
が含まれておりabab
、両端に余分な文字が 1 つだけあります。
編集済み
文字列 = 'abbcd' 出力 = 'abbcdcbba'
私の試み
この問題は O(N^2) の複雑さで解決できます。
私の質問
この問題を O(N^2) 時間以内に解決できますか? 、はいの場合、アルゴリズムは何ですか? (私にヒントをください)