您的位置:首页 > 其它

Longest Palindromic Substring

2015-07-18 16:48 393 查看
Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of
S is 1000, and there exists one unique longest palindromic substring.

Solution:

class Solution {
public:
string longestPalindrome(string s) {
string res;
int len = s.length();
if(len == 0) return res;
int maxO = 0, indexO = 0;
int maxE = -1, indexE = 0;
for(int i = 0; i < len - 1; ++i)
{

int j = 1;
for(; j <= (len+1)/2; ++j)
{
if(i-j >= 0 && i+j <= len-1 && s[i-j] == s[i+j]) continue;
else break;
}
if(j - 1 > maxO)
{
maxO = j - 1;
indexO = i;
}
if(s[i] == s[i+1])
{
int j = 1;
for(; j <= (len+1)/2; ++j)
{
if(i-j >= 0 && i+j+1 <= len-1 && s[i-j] == s[i+j+1]) continue;
else break;
}
if(j - 1 > maxE)
{
maxE = j - 1;
indexE = i;
}
}
}
if(maxO > maxE) res = s.substr(indexO-maxO, 2*maxO+1);
else res = s.substr(indexE-maxE, 2*maxE+2);

return res;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: