LeetCode --5最長回文サブストリング

私の解決策:

クラスソリューション{ 
パブリック:
    INT isPalindromic(文字列s、int型のサイズ、INT LEN){ 
        ため(= 0のI int型、iは+大きさ<= LEN; iは++){ 
            //チェックS [I]〜S [I +はサイズ1 ] 
            int型J = 0; 
            (J <サイズ/ 2)一方{ 
                場合(S [iがjは+] =のS [iはサイズ1-Jを+]!)
                    ブレーク。
                J + = 1; 
            } 
            IF(J ==サイズ/ 2)リターンI。
        } 
        -1を返します。
    } 
    文字列longestPalindrome(文字列s){ 
        int型LEN = s.size()。
        (INT sublen = LEN;> 0 sublen; sublen - )用{ 
            INT RET = isPalindromic(S、sublen、LEN)。
            IF(RET> = 0)戻りs.substr(RET、sublen)。
        } 
        戻りS。
    } 
}。

他の男のソリューション:

クラスソリューション{ 
パブリック:
    ストリングlongestPalindrome(文字列s)
    { 
        int型SLEN = s.length()、MAXLEN = 0、maxStart = 0。
        int型I = 0、L = 0、R = 0、LEN = 0。
        (iは<= SLEN-MAXLEN / 2)しながら、
        { 
            L = R = I。
            一方、(R <SLEN-1 && S [R + 1] == S [R])R ++。
            I = R + 1。
            一方、(L> 0 && R <SLEN-1 && S [R + 1] == S [L-1])l--、R ++。
            LEN = R-L + 1。
            IF(MAXLEN <LEN)MAXLEN = LEN、maxStart = L。
        } 
        戻りs.substr(maxStart、MAXLEN)。
    } 
}。

  

おすすめ

転載: www.cnblogs.com/feliz/p/10942755.html