leetcode每日一题5. 最长回文子串
难度中等
给你一个字符串 s,找到 s 中最长的回文子串。
示例 1:
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
示例 2:
输入:s = "cbbd"
输出:"bb"
示例 3:
输入:s = "a"
输出:"a"
示例 4:
输入:s = "ac"
输出:"a"
提示:
- 1 <= s.length <= 1000
- s 仅由数字和英文字母(大写和/或小写)组成
/**
* @param {string} s
* @return {string}
*/
var longestPalindrome = function(s) {
if(s.length < 2) return s
var len = s.length
var result = ''
function getResult(m,n){
while(m >= 0 && n < len && s[m] == s[n]){
m--
n++
}
// 此刻循环结束,也是刚刚不满足条件的时候,mn需要分别向前取一位
if(n - m - 1 > result.length) {
result = s.slice(m + 1, n)
//slice方法,(start,end),其中切割到end的前一位,不包括end
}
}
for (let i = 0; i < len; i++){
// 逐个遍历,往字符串右边跑
getResult(i,i);//类似aba的情况
getResult(i,i+1);//类似abba的情况
}
return result
};