最长回文子串

2018-12-10  本文已影响0人  fzkt
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

示例 1:
输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。
示例 2:
输入: "cbbd"
输出: "bb"

class Solution {
    public String longestPalindrome(String s) {
        int len = s.length();
        int max = 0;
        String result = "";
    
        for(int i = 0; i < s.length(); ++i){
            int length = 0;
            
            for(int j = s.length() - 1; j >= i; --j){
                String temp = s.substring(i,j + 1);
               
                if(isPalindromicString(temp)){
                    length = temp.length();
                    if(max <= length){
                        max = length;
                        result=temp;
                        break;   
                    }
                }
            }
            
        }
        
        return result;
    }
    
    public boolean isPalindromicString(String s){
        int i = 0,j = s.length() -1;
        while(i < j){
            if(s.charAt(i) == s.charAt(j)){
                i++;
                j--;
            }
            else
                break;
        }
        
        if(i >= j)
            return true;
        else
            return false;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读