中心扩展算法
目录
最长回文字串
博主主页:东洛的克莱斯韦克-CSDN博客
最长回文字串
5. 最长回文子串 - 力扣(LeetCode)
当索引到一个字符是就以该字符为中心向外扩展
class Solution {
public:
string longestPalindrome(string s) {
//改题算法思想为 模拟 和 中心扩展算法
string ret;
int len = s.size(), left = 0, right = 0, i = 0;
while (i < len) {
//基数长度的回文子串
left = i - 1; right = i + 1;
while (left >= 0 && right < len && s[left] == s[right] ) { left--; right++; }
if (ret.size() < right - left - 1) ret = s.substr(left + 1, right - left - 1);
//偶数长度的回文子串
left = i - 1; right = i;
while (left >= 0 && right < len && s[left] == s[right] ) { left--; right++; }
if (ret.size() < right - left - 1) ret = s.substr(left + 1, right - left - 1);
//更新下标
i++;
}
return ret;
}
};