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"
题意:在字符串s中,返回最长回文字符串
主要有两种情况:
1.单数回文:
Input "babad"
Output "bab" or "aba"
2.偶数回文:
Input "cbbd"
Output "bb"
用O(n^2)简单AC
public class Solution {
public String longestPalindrome(String s) {
char[] array = s.toCharArray();
int max=0;
int p,q;
String ans=s;
for(int i=1;i<array.length;i++){
p=0;
q=0;
while(i+q+1<array.length&&i-q-1>=0){
if(array[i+q+1]!=array[i-q-1]) break;
q++;
}
while(i-p-1>=0&&i+p<array.length){
if(array[i+p]!=array[i-p-1]) break;
p++;
}
if(2*q+1>max){
max=2*q+1;
ans=s.substring(i-q,i+q+1);
}
if(2*p>max){
max=2*p;
ans=s.substring(i-p,i+p);
}
}
return ans;
}
}