leetcode5. Longest Palindromic Substring

来源:互联网 发布:淘宝新店怎么增加流量 编辑:程序博客网 时间:2024/05/18 06:31

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

Example:

Input: “babad”

Output: “bab”

Note: “aba” is also a valid answer.
Example:

Input: “cbbd”

Output: “bb”

解法

思路:依次遍历字符串的每一个字符,分为奇数和偶数两种情况进行判断该字符左右是否相等,直到不相等为止,记录最左端及最长的长度,即可得出最大回文字符串。

public class Solution {     private int start, maxLen;     public String longestPalindrome(String s) {        if(s==null || s.length()==0) {            return "";        }        if(s.length() < 2) {            return s;        }        for(int i = 0; i < s.length(); i++) {            doPalindrome(s, i, i); //奇数对称,如aba            doPalindrome(s, i, i + 1); //偶数对称,如bb        }        return s.substring(start, start + maxLen);    }    public void doPalindrome(String s, int j, int k) {        while (j >= 0 && k < s.length() && s.charAt(j) == s.charAt(k)) {            j--;            k++;        }        if(maxLen < k - j -1) {            start = j + 1;            maxLen = k - j - 1;        }    }}

这里写图片描述

0 0
原创粉丝点击