Skip to content

Commit b9988e3

Browse files
committed
Add solution #5
1 parent a10c99d commit b9988e3

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
2|[Add Two Numbers](./0002-add-two-numbers.js)|Medium|
1111
3|[Longest Substring Without Repeating Characters](./0003-longest-substring-without-repeating-characters.js)|Medium|
1212
4|[Median of Two Sorted Arrays](./0004-median-of-two-sorted-arrays.js)|Hard|
13+
5|[Longest Palindromic Substring](./0005-longest-palindromic-substring.js)|Medium|
1314
6|[ZigZag Conversion](./0006-zigzag-conversion.js)|Medium|
1415
7|[Reverse Integer](./0007-reverse-integer.js)|Easy|
1516
8|[String to Integer (atoi)](./0008-string-to-integer-atoi.js)|Medium|
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/**
2+
* 5. Longest Palindromic Substring
3+
* https://leetcode.com/problems/longest-palindromic-substring/
4+
* Difficulty: Medium
5+
*
6+
* Given a string `s`, return the longest palindromic substring in `s`.
7+
*/
8+
9+
/**
10+
* @param {string} s
11+
* @return {string}
12+
*/
13+
var longestPalindrome = function(s) {
14+
let result = '';
15+
16+
for (let i = 0; i < s.length; i++) {
17+
let palindrome1 = getExtendedPalindrome(s, i, i);
18+
let palindrome2 = getExtendedPalindrome(s, i, i + 1);
19+
let longerPalindrome = palindrome1.length > palindrome2.length
20+
? palindrome1 : palindrome2;
21+
22+
if (longerPalindrome.length > result.length) {
23+
result = longerPalindrome;
24+
}
25+
}
26+
27+
return result;
28+
};
29+
30+
function getExtendedPalindrome(s, start, end) {
31+
while (start >= 0 && end < s.length && s[start] === s[end]) {
32+
start--;
33+
end++;
34+
}
35+
36+
return s.slice(start + 1, end);
37+
}

0 commit comments

Comments
 (0)