最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
示例 1:
输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。
示例 2:
输入: "cbbd"
输出: "bb"
使用语言:C++
方法:中心开花
class Solution {
public:
string longestPalindrome(string s) {
if(s.size()<1) return "";
int start=0,klen=0;
for(int i=0;i<s.size();i++){
int len1=centerAround(s,i,i);
int len2=centerAround(s,i,i+1);
int len=max(len1,len2);
if(len>klen) {
klen=len;
start=i-(len-1)/2;
}
}
return s.substr(start,klen);
}
int centerAround(string s,int left,int right){
while(left>=0&&right<s.size()&&s[left]==s[right]){
left--;
right++;
}
return right-left-1;//right-left+1-2
}
};
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-palindromic-substring
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。