Voyz's Studio.

LeetCode算法笔记--最长回文子串

字数统计: 191阅读时长: 1 min
2020/10/03 Share

LeetCode算法笔记–Day19

5. 最长回文子串

题目:

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

示例1:
输入: “babad”
输出: “bab”

示例1:
输入: “cbbd”
输出:”bb”

我的解答:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
* @param {string} s
* @return {string}
*/
var longestPalindrome = function(s) {
if(!s || s.length < 2) return s;
let _start = 0,_end = 0;
let _len = s.length;
let centerExpend = (left,right) => {

}
for(let i = 0;i < _len;i++){
let maxLen = Math.max(getPalindrome(i,i,s,_len),getPalindrome(i,i+1,s,_len));
if(maxLen > _end - _start){
_start = i - Math.floor((maxLen - 1)/2);
_end = i + Math.floor(maxLen/2);
}
}
return s.substring(_start,_end+1);
};

var getPalindrome = function(left,right,s,_len){
while(left >= 0 && right < _len && s[left] == s[right]){
left--;
right++;
}
return right - left - 1;
}

CATALOG
  1. 1. LeetCode算法笔记–Day19
  2. 2. 5. 最长回文子串
    1. 2.0.0.0.1. 题目:
    2. 2.0.0.0.2. 我的解答: