leetcode -5 Longest Palindromic Substring

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38340127/article/details/89194221

Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.

Example 1:

Input: "babad"
Output: "bab"
Note: "aba" is also a valid answer.

Example 2:

Input: "cbbd"
Output: "bb"

class Solution {
    public String longestPalindrome(String s) {
        if(s==null || s.isEmpty()) return "";
        if(s.length() == 1) {
            return s;
        }
        String res = s.substring(0, 1);
        for(int i=0;i<s.length();i++) {
            String tmp  = findPalindrome(s,i,i);
            if(tmp.length() > res.length()) {
                res = tmp;
            }
            
            tmp  = findPalindrome(s,i,i+1);
            if(tmp.length() > res.length()) {
                res = tmp;
            }
            
        }
        return res;
    }
    
    /**
     * 分为aba形式的回文数    以及aa形式的回文数
     * @param s
     * @param index
     * @return
     */
    public String findPalindrome(String s,int index,int index2) {
        int begin= index;
        int resIndex =index2;
        while (begin >= 0 && resIndex < s.length()) {
            if (s.charAt(begin) == s.charAt(resIndex)) {
                begin--;
                resIndex++;
            }else {
                break;
            }
        }
        return s.substring(begin+1, resIndex);
    }
    
}

猜你喜欢

转载自blog.csdn.net/qq_38340127/article/details/89194221