LeetCodeブラシ言及ノート1332タイトル

件名の説明:

あなたはそれが唯一の文字「」と「B」構図である文字列sを与えます。削除操作から取り外すことができるたびにパリンドロームねシーケンス

のリターン与えられた文字列のすべての文字の最小数を(文字列が空である)を削除するには、[削除。

「サブシーケンス」が定義されます。元の文字列を取得した文字列が一部の文字を削除することによって、元の順序を変更することができない場合、文字列は元の文字列のシーケンスです。

「回文」が定義されています:string前後読みが一致している場合は、その文字列が回文です。

 トピック出典:滞在ボタン(LeetCode)

問題解決のアイデア:

多くは、部分文字列とこの概念をサブシーケンスは、単語が2つの難しい問題である区別はありません場合は、このトピックはあまり必要なので、シーケンス、そんなに簡単に、サブシーケンスであるので、このテーマを混乱、または他のちょうど元の文字列をスクランブル、あなたは自由に3つのケースに分け、文字を撤回することができます:

  1.元の文字列は、文字だけのすべてを削除すると、返された結果が1でクリアする必要があり、その後、回文文字列そのものであります

  2.元の文字が文字列でのみ、これら2つの文字のBであるので、回文文字列ではありません、あなたは2つのだけのすべての文字を削除する必要があるので、最初にすべての二回目を削除する(削除することができますすべてのBを削除します)

  3.元の文字列を直接バック0空パスであります

次のように実装コード:

    公共 INT removePalindromeSub(文字列S){
         場合(s.length()== 0 戻り 0 ;
        int型は = 0を残しましたINT右= s.length() - 1 ;
        CHAR []文字= s.toCharArray()。
        一方(左< 右){
             場合(!文字[左++] =文字[right-- ])
                 リターン 2 

        } 
        を返す 1 
    }

 

おすすめ

転載: www.cnblogs.com/yxym2016/p/12549475.html
おすすめ