-
Notifications
You must be signed in to change notification settings - Fork 0
/
5.最长回文子串.ts
34 lines (31 loc) · 815 Bytes
/
5.最长回文子串.ts
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
30
31
32
33
34
/*
* @lc app=leetcode.cn id=5 lang=typescript
*
* [5] 最长回文子串
*/
// @lc code=start
function longestPalindrome(s: string): string {
if (s.length < 2) return s;
if (s.length === 2) return s[0] === s[1] ? s : s[0];
const resultArr: string[] = [];
for (let i = 1; i < s.length; i++) {
let left = i - 1;
let right = i + 1;
while (left >= 0 && right < s.length && s[left] === s[right]) {
left--;
right++;
}
resultArr.push(s.slice(left + 1, right));
}
for (let i = 1; i < s.length; i++) {
let left = i;
let right = i + 1;
while (left >= 0 && right < s.length && s[left] === s[right]) {
left--;
right++;
}
resultArr.push(s.slice(left + 1, right));
}
return resultArr.sort((a, b) => b.length - a.length)[0];
}
// @lc code=end