
// 中心扩展法
function longestPalindrome($s) {
$len = strlen($s);
$max = 0;
$start = 0;
$i = 0;
while ($i < $len) {
if ($len - $i < $max / 2) {
break;
}
$left = $right = $i;
while ($right < $len && $s[$right] == $s[$right+1]) {
$right++;
}
$i = $right+1;
while ($left >0 && $right < $len - 1 && $s[$left-1] == $s[$right+1]) {
$left--;
$right++;
}
if ($right - $left + 1 > $max) {
$max = $right - $left + 1;
$start = $left;
}
}
return substr($s, $start, $max);;
}

本文介绍了一种使用中心扩展法寻找字符串中最长回文子串的方法。通过从每个字符为中心向两边扩展比较字符来确定回文串长度,并记录最长回文串的起始位置与长度。
2190

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



