您的位置:首页 > 其它

leetcode-5 longest palindromic substring

2017-06-20 16:25 344 查看
1.说明:

最长回文串,考虑到长度为奇数的回文串和长度为偶数的回文串。

2.代码:

var longestPalindrome = function(s) {

var max = 0;
var mark = {
i: 0,
j: 0
};
var result = '';

var getOddLength = function (s, index) {
var i = index;
var j = index;
while (i >= 0 && j < s.length) {
if (s[i] === s[j]) {
i--;
j++;
}
else {
break;
}
}
return j - i + 1;
};
var getEvenLength = function (s, index) {
if (index >= s.length ) {
return 0;
}
var i = index;
var j = index + 1;
while (i >= 0 && j < s.length) {
if (s[i] === s[j]) {
i--;
j++;
}
else {
break;
}
}
return j - i + 1;
};
var getResult = function (mark, s) {
var i = mark.i;
var j = mark.j;
var str = '';
while (i >= 0 && j < s.length) {
if (s[i] === s[j]) {
str = s[i] + str;
if (i !== j) {
str = str + s[j];
}
i--;
j++;
}
else {
break;
}
}
return str;
};
for (var i = 0; i < s.length; i++) {
var l1 = getOddLength(s, i);
var l2 = getEvenLength(s, i);
if (l1 > max) {
max = l1;
mark.i = i;
mark.j = i;
}
if (l2 > max) {
max = l2;
mark.i = i;
mark.j = i + 1;
}
}
return getResult(mark, s);
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: