最长回文字串
07/05/2021
题目描述
给你一个字符串 s,找到 s 中最长的回文子串。
如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。
示例 1:
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
示例 2:
输入:s = "cbbd"
输出:"bb"
提示:
- 1 <= s.length <= 1000
- s 仅由数字和英文字母组成
本人题解
/**
* @param {string} s
* @return {string}
*/
var longestPalindrome = function(s) {
let max = 0, left, right, maxs = ''
s.split('').forEach((i, n, arr) => {
let flag = true, cur = 1, curs = i, sameL = true;
left = n-1, right = n+1
while (flag) {
if (arr[left] && arr[left] == i && sameL) {
curs = arr[left] + curs
cur++
left--;
} else if (arr[left] && arr[right] && arr[left] == arr[right]) {
curs = arr[left] + curs + arr[right]
cur += 2
left--, right++;
sameL = false
} else {
flag = false
}
}
if (cur > max) {
max = cur
maxs = curs
}
})
return maxs;
};分析
忘了。以后再补