美文网首页
最长回文子串

最长回文子串

作者: fzkt | 来源:发表于2018-12-10 23:08 被阅读0次
    给定一个字符串 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;
        }
    }
    

    相关文章

      网友评论

          本文标题:最长回文子串

          本文链接:https://www.haomeiwen.com/subject/rjsjhqtx.html