LeetCode 5. 最长回文子串

mac2026-01-19  8

LeetCode 5. 最长回文子串

 

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

示例 1:

输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:

输入: "cbbd"输出: "bb"


 

知识点:

substr(); // 求子串回文数的个数分,”奇数个“、”偶数个“分别处理 function longestPalindrome($s) { $ans = $s[0]; $ans_num = 1; for ($i = 1; $i < strlen($s); ++ $i) { // 回文数个数为奇数个 $temp = 1; for ($j = $i - 1, $k = $i + 1; $j >= 0 and $k < strlen($s); -- $j, ++ $k) { if ($s[$j] == $s[$k]) { $temp += 2; } else { break; } } if ($temp > $ans_num) { $ans = substr($s, $j + 1, $temp); $ans_num = $temp; } // 回文数个数为偶数个 $temp = 0; for ($j = $i - 1, $k = $i; $j >= 0 and $k < strlen($s); -- $j, ++ $k) { if ($s[$j] == $s[$k]) { $temp += 2; } else { break; } } if ($temp > $ans_num) { $ans = substr($s, $j + 1, $temp); $ans_num = $temp; } } return $ans; }

 

最新回复(0)