/*
5. 最长回文子串 mdeium
给你一个字符串 s,找到 s 中最长的回文子串。*/
// 中心扩散
import java.lang.management.ManagementFactory;
class Solution5a {
public String longestPalindrome(String s) {
int left = 0;
int right = 0;
int maxlen = 1;
int start = 0;
int end = 0;
for (int i = 0; i < s.length(); i++) {
int len = 1;
left=i-1;
right=i+1;
while (left >= 0 && s.charAt(left) == s.charAt(i)) {
left--;
len++;
}
while (right < s.length() && s.charAt(right) == s.charAt(i)) {
right++;
len++;
}
while (left >= 0 && right < s.length() && s.charAt(right) == s.charAt(left)) {
len += 2;
left--;
right++;
}
maxlen = Math.max(len, maxlen);
// 只记录 更新maxlen时的 start与end
if (maxlen==len) {
start = left + 1;
end = right - 1;
}
}
return s.substring(start, end + 1);
}
}
day06:leetcode05
最新推荐文章于 2024-05-10 19:35:58 发布