题目
https://leetcode-cn.com/problems/longest-palindromic-substring/
思路
中心扩散法:分为两种情况,…aa…和…aba…,用ll和rr记录这个子串的边界,判断长度rr-ll+1
获取最大即可
/**
* @param {string} s
* @return {string}
*/
var longestPalindrome = function(s) {
if (s.length == 0) return s;
let res = 0; // 定义回文串的长度
let ll, rr;
ll = rr = 0;
let len = s.length;
for (let i=0; i<len; i++){
let l = i-1;
let r = i+1;
let curLen = 0;
while (l>=0 && r<len && s[l] === s[r]){
curLen = r-l+1;
if (res < curLen){
res = curLen;
ll = l;
rr = r;
}
l--; r++;
}
l = i;
r = i+1;
curLen = 0;
while (l>=0 && r<len && s[l] === s[r]){
curLen = r-l+1;
if (res < curLen){
res = curLen;
ll = l;
rr = r;
}
l--; r++;
}
}
// console.log(ll, rr);
return s.substring(ll, rr+1);
};
js函数api
- String.prototype.substring(),字符串切割 => [left,right)