错误:
1. 暴力解会超时(即主函数里面两个for 循环,然后判断i,j之间是否为palindrome)
2. while loop 总是忘记更改下标,导致死循环。
3. 开始的时候没有移动right index,导致奇偶palindrome会错
4. maxLen, maxString设置要同步。
public class Solution {
public StringlongestPalindrome(String s) {
// Start typing your Java solution below
// DO NOT write main() function
if (s == null) {
returns;
}
String maxString = s.substring(0,1);
int maxLen = 1;
for (int i = 0; i < s.length()-1; i++){
int left =i;
int right= i+1;
while(right < s.length() && s.charAt(right) ==s.charAt(left)) {
right++;
}
if(right-left > maxLen) {
maxString = s.substring(left,right);
maxLen = right-left;
}
left--;
while(left>= 0 && right < s.length()) {
if (s.charAt(left) ==s.charAt(right)) {
if (right-left+1 > maxLen) {
maxString= s.substring(left, right+1);
maxLen =right-left+1;
}
left--;
right++;
} else {
break;
}
}
}
return maxString;
}
}