题目:
Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.
思路:
1.遍历整个字符串,并从该字符为回文中心找出最大长度放在全局变量中。
2.回文分奇数和偶数,需分别处理。
代码:
public class Solution {
int maxlen=0,pos=0;
public String longestPalindrome(String s) {
if(s.length() < 2)
return s;
for(int i=0; i<s.length()-1; i++)
{
helper(s, i, i);//奇数
helper(s, i, i+1);//奇数
}
return s.substring(pos, pos + maxlen);
}
public void helper(String s, int i, int j)
{
while(i>=0 && j<s.length() && s.charAt(i)==s.charAt(j))
{
i--;
j++;
}
if(maxlen < j-i-1)
{
maxlen = j-i-1;
pos = i+1;
}
}
}