给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。
示例 1:
输入: "babad" 输出: "bab" 注意: "aba"也是一个有效答案。
示例 2:
输入: "cbbd" 输出: "bb"
class Solution {
public:
string longestPalindrome(string s) {
int i,j,k,l;
int num; //记录这是第几个字母
int p,q; //判断回文串用的指针
string str; //记录子串
j=s.size()-1;
for(; j>=2 ; j--){ //记录子串的长度,从大到小,最小是2
str = ""; //置为空串
for(i=0;(i+j)<s.size();i++){ //i表示的是开始取字符的位置
for(k=i,l=0 ,num=1; num<=j ;l++, k++,num++){ //取出子串
str[l] = s[k];
if(num == j)
str[l+1]='\0';
}
//接下来判断是不是回文串
for(p=0,q=l-1;q>=0; p++,q--){
if(str[p] != str[q])
break;
}
if(q<0)
return str;
}
}
}
};