Skip to content

Commit 1aef08f

Browse files
committed
add Longest Palindromic Substring solution
1 parent b0361ee commit 1aef08f

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/**
2+
* [Problem]: [5] Longest Palindromic Substring
3+
* (https://leetcode.com/problems/longest-palindromic-substring/)
4+
*/
5+
// 시간복잡도 O(n^2)
6+
// 공간복잡도 O(1)
7+
function longestPalindrome(s: string): string {
8+
if (s.length < 2) return s;
9+
10+
let start = 0;
11+
let end = 0;
12+
13+
function findPalindrome(left: number, right: number): void {
14+
while (0 <= left && right < s.length && s[left] === s[right]) {
15+
left--;
16+
right++;
17+
}
18+
19+
if (right - left - 1 > end - start) {
20+
start = left + 1;
21+
end = right - 1;
22+
}
23+
}
24+
25+
for (let i = 0; i < s.length; i++) {
26+
findPalindrome(i, i);
27+
findPalindrome(i, i + 1);
28+
}
29+
30+
return s.substring(start, end + 1);
31+
}

0 commit comments

Comments
 (0)