私はパリンドロームs
を持っていて、楽しみのためにs
の末尾に文字を続けて追加していきます。しかし、私は一度sが回文ではなくなるのを止めたい。新しい文字をPalindromeに追加します。新しい文字列がまだPalindromeかどうかをチェックする効率的または動的な方法?
今や私は怠惰なので、新しい文字がs
に追加されるたびに回文であるかどうかを調べるためにs
を再スキャンしたくありません。 s
が既にパリンドロームであるという事実を利用して、新しいs
が回文であるかどうかを定式化/チェックするより速い方法があるかどうか疑問に思っています。私はその情報を利用する方法があると感じていますが、私はそれについて私の頭を包み込むことはできません。
私は私の思考プロセスに立ち往生しています。これまでのところ私は事を事例に分解しようとしています。
ドロームs
は、二つの形態であってもよい。
(|__M__|
をs
と|__-M__|
のサブ部分である|__M__|
の逆である)長さが奇数である場合:
|__-M__|X|__M__|
長さは偶数です。
|__-M__||__M__|
c
を追加する際
は今
|__-M__|X|__M__|c
< ----回文をチェックするための効率的な方法はありますか?
|__-M__||__M__|c
< ----a palindrome?
この基準を満たす回文(長さが奇数、奇数、またはその両方)の例をいくつか挙げることができますか?私の頭の上から、私は一文字の回文を考えることができ、同じ文字を付けることができます。 aaa - > aaaa – Keeler
@Keeler今あなたは私が問題を考えていたと思っています.....私は回文が回文として残っている唯一の時間は、すべての文字が同じで同じ文字を追加するということです。 (プラス空の文字列の場合).....右か?今、私は愚かな気がします......なぜこのような簡単な質問のために眠りを失うのですか?sigh –