题意:求最长回文子串。
思路:枚举中心对称点,可以是字符,也可以是字符之间的空隙,一共2*n-1个点。还可以采用动态规划和KMP的方法,不是很会。
代码:
class Solution {
public:
string longestPalindrome(string s) {
if(s.length()==0)
return "";
int max_len=0;
string res="";
for(int i=0;i<2*s.length()-1;i++)
{
int left = i / 2;
int right = i / 2;
if(i % 2 == 1)
right++;
while(left >= 0 && right < s.length() && s[left]==s[right])
{
left--;
right++;
}
string str = s.substr(left+1,right-left-1);
if(str.length()>max_len)
{
max_len = str.length();
res = str;
}
}
return res;
}
};