走自己的路----5. 最長迴文子串

給定一個字符串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度爲 1000。

示例 1:

輸入: "babad"
輸出: "bab"
注意: "aba" 也是一個有效答案。
示例 2:

輸入: "cbbd"
輸出: "bb"

 

public String longestPalindrome(String s) {
        if(s==null||s.length()<2){
            return s;
        }
        String res = s.substring(0,1);
        int maxLen = 0;
        for(int i=0;i<s.length()-1;i++){
            String odd = getStr(s,i,i);
            String even = getStr(s,i,i+1);
            String maxStr = odd.length()>even.length()?odd:even;
            if(maxStr.length()>maxLen){
                maxLen = maxStr.length();
                res = maxStr;
            }
        }
        return res;
    }
public String getStr(String s,int l,int r){
        int n = s.length();
        while(l>=0&&r<n){
            if(s.charAt(l)==s.charAt(r)){
                l--;
                r++;
            }else {
                break;
            }
        }
        return s.substring(l+1,r);
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章