最长回文子串

给定一个字符串 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;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容