泪奔了,改了一个边界条件就华丽丽的通过了~在这之前,做了好多无用功,只想说一句,叉~
class Solution {
public:string longestPalindrome(string s) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if (s.size()<2) {
return s;
}
int max = INT_MIN;
int beg = 0;
int end = 0;
if (s.size()==2 && s[0]==s[1]) {
return s;
}
for (int i = 0; i < s.size(); i++) {
int temp = 1;
int j = 0;
int bb = 0;
int ee = 0;
for (j = 1; j<=i && i+j < s.size(); j++) {
if (s[i+j] == s[i-j]) {
temp+=2;
bb = i-j;
ee = i+j;
} else
break;
}
if (temp >max) {
max = temp;
beg = bb;
end = ee;
}
temp=0;
bb = 0;
ee = 0;
for (j = 0; j<=i&&i+j<s.size()-1;j++) {
if (s[i-j]==s[i+j+1]) {
temp+=2;
bb = i-j;
ee = i+j+1;
} else
break;
}
if (temp >=max) {
max = temp;
beg = bb;
end = ee;
}
}
if (max == INT_MAX) {
return s.substr(s.size()-1);
}
string res(s.begin()+beg, s.begin()+end+1);
return res;
}
};