
中心扩展的方式去寻找,
class Solution {
public String longestPalindrome(String s) {
if (s == null || s.length() == 0)return "";
int left = 0 ;
int right = 0 ;
String str = s.charAt(0)+"";
for(int index = 0 ; index < s.length()-1 ; index ++){
left = index -1 ;
right = index + 1;
while(s.charAt(index) == s.charAt(right)){
str = str.length() > s.substring(index,right+1).length() ? str : s.substring(index,right+1);
right++ ;
if (right == s.length() || s.charAt(index) != s.charAt(right))break;
}
while(right < s.length() && left >= 0 && s.charAt(left) == s.charAt(right)){
str = str.length() > s.substring(left,right+1).length() ? str : s.substring(left,right+1);
left-- ;
right++ ;
}
}
return str;
}
}
该博客介绍了如何使用中心扩展的方法寻找字符串中最长的回文子串。算法通过双指针技巧,从每个字符出发,分别扩展到两边,更新最长回文子串。整个过程涉及到字符串处理和回文判断,是字符串算法的一个经典应用。
2158

被折叠的 条评论
为什么被折叠?



