class Solution {
public static void main(String[] args) {
String s = "abaabdd";
Solution solution = new Solution();
System.out.println(solution.longestPalindrome(s));
}
public String longestPalindrome(String s) {
if(s == null || s.length() == 0)
return "";
if(s.length() == 1)
return s;
char[] chars = s.toCharArray();
int maxLen = 0;
int curMaxLen = 0;
int maxStart = -1;
int maxEnd = -1;
for(int i = 0; i < s.length(); i++) {
curMaxLen = 1;
int start = i-1, end = i+1;
while(start >= 0 && end < s.length() && chars[start] == chars[end]) {
curMaxLen += 2;
start--;
end++;
}
if(maxLen < curMaxLen) {
maxLen = curMaxLen;
maxStart = start + 1;
maxEnd = end;
}
curMaxLen = 0;
start = i;
end = i+1;
while(start >= 0 && end < s.length() && chars[start] == chars[end]) {
curMaxLen += 2;
start--;
end++;
}
if(maxLen < curMaxLen) {
maxLen = curMaxLen;
maxStart = start + 1;
maxEnd = end;
}
curMaxLen = 0;
}
return s.substring(maxStart, maxEnd);
}
}
leecode题目练习——返回最长回文序列
最新推荐文章于 2023-05-06 19:38:27 发布