G.Longest回文サブストリング

リンク:https://ac.nowcoder.com/acm/contest/908/G

質問の意味:

    回文はそれが、右から左に、右だけでなく、左からまったく同じ読みの文字列で、左右対称の文字列です。例えば、「A」、」ABA」、 『アバ』回文と 『ABC』、」AABB」はありませんされています。

    のは、新しい関数f(複数可)を定義してみましょう。

    いくつかの文字列s、F(S)のための最も長いパリンドロームサブストリングの長さです。

    今、あなたがf(s)が1よりも偉大であるかどうかを、指定した文字列sの決定する必要があります。
    文字列が小文字のみが含まれていますね。

アイデア:

ラインでこの回文文字列ABA、同様のAA探し

コード:

#include <ビット/ STDC ++ H> 
 
名前空間STDを使用して、
 
typedefの長い長いLL。
const int型MAXN = 3E5 + 10。
const int型MOD = 1E9 + 7。
N INT、M、K、T。
 
メインINT()
{ 
    CIN >> N。
    文字列s; 
    cinを>>秒; 
    ブールフラグ= FALSE。
    (; iがN-1 <I ++は、I = 1 INT)のための
    { 
        (S [I] == S [I-1] || S [I-1] == S [I + 1])場合
        { 
            フラグ=真; 
            ブレーク; 
        } 
    } 
    もし、(S [N-1] == S [N-2])
        フラグ= TRUE。
    IF(フラグ)
        COUT << "YES" << ENDL。
    他の
        裁判所未満<< "NO" <<
 
    0を返します。
}

  

おすすめ

転載: www.cnblogs.com/YDDDD/p/10960381.html