您的位置:首页 > 其它

Longest Palindromic Substring [LeetCode] 最长回文子串

2014-08-06 10:28 731 查看
题目链接:Longest Palindromic Substring

/*
思路:
从第i个元素开始遍历,两种情况:
a) 回文串为奇数时,从第i个向左(i-j),向右(i+j)遍历,不相等则跳出。
b) 回文串为偶数时,从第i个向左(i-j),向右(i+1+j)遍历,不相等则跳出。
用maxx记录最大长度,pos记录回文串的起点
*/
class Solution {
public:
string longestPalindrome(string s) {
int len = s.size();
int maxx = 0, pos;
for(int i = 0; i < len; i ++) {
for(int j = 0; i-j >= 0 && i+j < len; j ++) {//回文串为奇数
if(s[i-j] != s[i+j]) break;
if(2*j+1 > maxx) {
maxx = 2*j+1;
pos = i-j;
}
}
for(int j = 0; i-j >= 0 && i+1+j < len; j ++) {//回文串为偶数
if(s[i-j] != s[i+1+j]) break;
if(2*j+2 > maxx) {
maxx = 2*j+2;
pos = i-j;
}
}
}
return string(s, pos, maxx);
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  回文串 string