class Solution {
public:
string longestPalindrome(string s) {
int start = 0;
int end = 0;
for(int i = 0;i < s.size();i++){
auto [left1,right1] = expandAroundCenter(s,i,i);
auto [left2,right2] = expandAroundCenter(s,i,i+1);
if(right1 - left1 > end - start){
start = left1;
end = right1;
}
if(right2 - left2 > end - start){
start = left2;
end = right2;
}
}
return s.substr(start,end-start+1);
}
pair<int,int> expandAroundCenter(const string& s, int left, int right){
while(left >= 0&& right < s.size()&& s[left] == s[right]){
left--;
right++;
}
return {left + 1, right - 1};
}
};
06-24
1345
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交