
中心扩散法
class Solution {
public String longestPalindrome(String s) {
String ret = "";
int l,r;
for(int i = 0;i < s.length();i++)
{
l = i-1;r = i+1;
while(l>=0 && r<s.length() && s.charAt(l) == s.charAt(r))
{
l--;r++;
}
if(ret.length() < r-l-1) ret = s.substring(l+1,r);
l=i;r=i+1;
while(l>=0 && r<s.length() && s.charAt(l) == s.charAt(r))
{
l--;r++;
}
if(ret.length() < r-l-1) ret = s.substring(l+1,r);
}
return ret;
}
}
该代码实现了一个寻找给定字符串中最长回文子串的算法,采用中心扩散法。通过遍历字符串的每个字符,分别以当前字符和它的相邻字符为中心,向两侧扩散,检查是否形成回文串,并更新最长回文子串的结果。这种方法有效地减少了回溯,提高了效率。
791

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



