现在的代码只能通过部分的用例,先记录一下
class Solution {
public:
string char2str(char a) {
string ret = "";
ret.push_back(a);
return ret;
}
string longestPalindrome(string s) {
if (s.size() == 1) {
return s;
}
string lonPa = "";
int maxLen = 0;
for (int k = 0; k < s.size(); k++) {
string pa = "";
pa.push_back(s[k]);
int paLen = 1;
int i = k - 1;
int j = k + 1;
if (i < 0 || j > s.size() - 1) {
if (paLen > maxLen) {
maxLen = paLen;
lonPa = pa;
}
continue;
}
if (s[i] == s[j]) {
paLen = paLen + 2;
pa = char2str(s[i]) + pa + char2str(s[j]);
i--;
j++;
while (i >= 0 && j <= s.size() - 1) {
if (s[i] == s[j]) {
paLen = paLen + 2;
pa = char2str(s[i]) + pa + char2str(s[j]);
i--;
j++;
} else {
break;
}
}
} else if (s[k] == s[j]) {
pa = pa + char2str(s[j]);
paLen++;
j++;
while (i >= 0 && j <= s.size() - 1) {
if (s[i] == s[j]) {
paLen = paLen + 2;
pa = char2str(s[i]) + pa + char2str(s[j]);
i--;
j++;
} else {
break;
}
}
}
if (paLen > maxLen) {
maxLen = paLen;
lonPa = pa;
}
}
return lonPa;
}
};