#5. Longest Palindromic Substring
Medium
문제
주어진 문자열 s
에서 가장 긴 회문을 반환하는 문제입니다.
답
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
var longestPalindrome = function(s) {
let longest = '';
const findLongestPalindrome = (str, i, j) => {
while(i >= 0 && j < str.length && str[i] === str[j]) {
i -= 1;
j += 1;
}
// slice the qualified substring from the second last iteration
return str.slice(i + 1, j);
}
for (let i = 0; i < s.length; i++) {
// palindrome can center around 1 or 2 letters
const current1 = findLongestPalindrome(s, i, i);
const current2 = findLongestPalindrome(s, i, i + 1);
const longerPalindrome =
current1.length > current2.length ? current1 : current2;
if (longerPalindrome.length > longest.length) {
longest = longerPalindrome;
}
}
return longest;
};
|
설명
LeetCode
Given a string s, return the longest palindromic substring in s.
Example 1:
1
2
3
|
Input: s = "babad"
Output: "bab"
Note: "aba" is also a valid answer.
|
Example 2:
1
2
|
Input: s = "cbbd"
Output: "bb"
|
Example 3:
1
2
|
Input: s = "a"
Output: "a"
|
Example 4:
1
2
|
Input: s = "ac"
Output: "a"
|
Constraints:
- 1 <= s.length <= 1000
- s consist of only digits and English letters (lower-case and/or upper-case),