public class Solution {
public String longestPalindrome(String s) {
if (s.length()==0) return "";
int maxdiff = 0;
int maxindex = 0;
boolean odd = true;
int length = s.length();
for (int i=0; i<length; i++) {
int diff = 0;
if (i+1<length && s.charAt(i)==s.charAt(i+1)) {
diff = 0;
while (i-diff>=0 && i+1+diff<length && s.charAt(i-diff)==s.charAt(i+1+diff)) {
diff++;
}
if (diff-1>=maxdiff) {
maxdiff = diff-1;
maxindex = i;
odd = false;
}
}
diff = 0;
while (i-diff>=0 && i+diff<length && s.charAt(i-diff)==s.charAt(i+diff)) {
diff++;
}
if (diff-1>maxdiff) {
maxdiff = diff-1;
maxindex = i;
odd = true;
}
}
if (odd) return s.substring(maxindex-maxdiff, maxindex+maxdiff+1);
else return s.substring(maxindex-maxdiff, maxindex+maxdiff+2);
}
}
没有评论:
发表评论