您的位置:首页 > 其它

[leetcode]Longest Palindromic Substring

2014-04-17 20:37 267 查看


Longest Palindromic Substring

My Submissions

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.

解题思路:从当前元素分两头扩展开来寻找,回文串中的元素个数分为奇数与偶数分别外理

string longestPalindrome(string s) {
int slen = s.size();

if(0 == slen) return "";

int i, j;
i = j = 0;
int si, sj;
si = 0, sj = 1;
int maxLen = 1;

//回文为奇数
for(int k = 1; k < slen - 1; k++){
i = k - 1; j = k + 1;
while(i >= 0 && j < slen){
if(s[i] == s[j]){
if((j - i + 1) > maxLen){
maxLen = j - i + 1;
si = i; sj = j;
}
i--; j++;
}else{
break;
}
}
}

//回文为偶数
for(int k = 0; k < slen - 1; k++){
i = k; j = k + 1;
while(i >= 0 && j < slen){
if(s[i] == s[j]){
if((j - i + 1) > maxLen){
maxLen = j - i + 1;
si = i; sj = j;
}
i--; j++;
}else{
break;
}
}
}

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