最長のタイトルをサブストリングLeetCodeブラシパリンドローム8--

まず、要件

 

 二、背景

(1)回文:同一の文字列を読み込み、長所と短所

(2)指数は、対応する文字列を検索します

S:文字列

(S)の文字のインデックスを要求するには

(1)S.index(単数または複数)は端部のみを見つけることができないSに対応する最初のインデックスを検索します

(2)[I S [i]の==の場合範囲内((S)LEN)のために]#完全にインデックス部分を見つけることができ

第三に、問題解決のためのアイデア

 その後、インデックスに対応する文字が、後でそれに等しい文字列、およびこの文字列決意機能回文の傍受、回文の長さより大きな新旧回文の長さであればよりを取るために1、新しいパリンドロームで置き換えます古い回文

 

 

クラスソリューション:
     デフ longestPalindrome(自己、S:STR) - > STR:
         もしS:
            longpalindromes = S [0]
             用の I における範囲()S(LEN):
                データ = S [I + 1 ::]
                B = S [I]
                インデックス = [R 用の R における範囲(LEN(データ))もしデータ[R] == B]
                 のための J インデックス:
                    新しい = self.palindrome(S [I:I + J + 2 ])
                     場合(新しい)> lenのLEN(longpalindromesを):
                        longpalindromes = 新しい
             リターンはlongpalindromes
         リターン 「」

    デフ(自己、STR)を回文:
        revers_str = STR [:: - 1 ]
         の場合 revers_str == STR:
             リターンSTR
         リターン []

 (2)時間の複雑さは、どのように時間の複雑さを軽減するために高いのですか?

おすすめ

転載: www.cnblogs.com/bethansy/p/12080925.html