题目链接:https://leetcode.cn/problems/longest-palindromic-substring/
题目如下:
class Solution {
public:
string longestPalindrome(string s) {
//思路:以i为中间,双指针向两边扩大,直到不能扩大为止,并记录最大值
//注:由于是双指针,长度每次增加一定为偶数,所以,要考虑长度为奇数和偶数的情况
string res="";
for(int i=0;i<s.size();i++){//以每个元素为始,向两边扩展
int l=i-1,r=i+1;//此时长度为奇数
while(l>=0&&r<s.size()&&s[l]==s[r]) l--,r++;
if(res.size()<(r-1)-(l+1)+1) res=s.substr(l+1,(r-1)-(l+1)+1);//起始位置,截取的字符串长度
l=i;r=i+1;//下面两行同上
while(l>=0&&r<s.size()&&s[l]==s[r]) l--,r++;
if(res.size()<(r-1)-(l+1)+1) res=s.substr(l+1,(r-1)-(l+1)+1);
}
return res;
}
};