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);
};
最长回文串,考虑到长度为奇数的回文串和长度为偶数的回文串。
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);
};
相关文章推荐
- LeetCode 第五题 Longest Palindromic Substring
- [Leetcode] Longest Palindromic Substring
- LeetCode-5-Longest Palindromic Substring(C语言实现)
- [LeetCode] 045: Longest Palindromic Substring
- LeetCode解题报告--Longest Palindromic Substring
- 【LeetCode】Longest Palindromic Substring && 【九度】题目1528:最长回文子串(腾讯2013年实习生招聘二面面试题)
- leetcode — longest-palindromic-substring
- LEETCODE: Longest Palindromic Substring
- LeetCode(5)--Longest Palindromic Substring
- leetcode 第五题 Longest Palindromic Substring
- leetcode之Longest Palindromic Substring
- LeetCode-5.Longest Palindromic Substring
- Leetcode-5: Longest Palindromic Substring 最大回文子串
- leetcode——Longest Palindromic Substring
- LeetCodeOJ_5_m_Longest Palindromic Substring(最长回文子串)
- 【LeetCode-面试算法经典-Java实现】【005-Longest Palindromic Substring(最长回文子串)】
- LeetCode 5 Longest Palindromic Substring
- 【leetcode】Longest Palindromic Substring
- [LeetCode] 005. Longest Palindromic Substring (Medium) (C++/Java/Python)
- 【一天一道LeetCode】#5 Longest Palindromic Substring