Hello friends,

If you come here to check the solution of the following question.

# Longest Palindromic Substring in javascript

## this question is asked in LeetCode as a Longest Palindromic Substring (Question Number -5) and its difficulty is medium.

So let’s first understand the question.

Given a string `s`

, return *the longest palindromic substring* in `s`

.

Example 1:

Input: s = "babad" Output: "bab" Explanation: "aba" is also a valid answer.

Example 2:

Input: s = "cbbd" Output: "bb"

Constraints:

`1 <= s.length <= 1000`

`s`

consist of only digits and English letters.

So the solution to the above question is.

```
/**
* @param {string} s
* @return {boolean}
*/
var longestPalindrome = function(s) {
let startIndex = 0;
let maxLength = 1;
function expandMiddle(left, right) {
while (left >= 0 && right < s.length && s[left] === s[right]) {
const currentPalindromeLength = right - left + 1;
if (currentPalindromeLength > maxLength) {
maxLength = currentPalindromeLength;
startIndex = left;
}
left -= 1;
right += 1;
}
}
for (let i = 0; i < s.length; i++) {
expandMiddle(i - 1, i + 1);
expandMiddle(i, i + 1)
}
return s.slice(startIndex,startIndex+maxLength)
};
```

The complexity of the solution is as follows:

**Time Complexity: O(***n²*)- As expanding a palindrome around its center could take up to O(n) & we do this for each character.

**Space Complexity: O( 1)**