[算法题]最长回文子串
题目链接: 最长回文子串
使用中心扩展算法进行求解, 即遍历字符串长度, 每次以当前位置为中心向左右扩展, 根据字符串长度的奇偶情况需要不同处理求最大值, 在枚举中心点时, 需要考虑两种遍历方式:
- 第一种:
- 第二种:
题解代码:
class Solution
{
public:
//中心扩展算法
int getLongestPalindrome(string A)
{
int len = 0;
//枚举每个中心点
for(int i = 0; i < A.size(); ++i)
{
//奇数
int left = i - 1;
int right = i + 1;
while(left >= 0 && right < A.size() && A[left] == A[right])
{
left--;
right++;
}
len = max(len, right - left - 1);
//偶数
left = i;
right = i + 1;
while(left >= 0 && right < A.size() && A[left] == A[right])
{
left--;
right++;
}
len = max(len, right - left - 1);
}
return len;
}
};
原文地址:https://blog.csdn.net/m0_62714628/article/details/140558658
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!