Skip to content

Instantly share code, notes, and snippets.

@pjcodesjs
Created March 12, 2023 04:56
Show Gist options
  • Save pjcodesjs/f592c675ee7c4b0e2c0aa621f318704a to your computer and use it in GitHub Desktop.
Save pjcodesjs/f592c675ee7c4b0e2c0aa621f318704a to your computer and use it in GitHub Desktop.
function longestPalindrome(str) {
let longestPalindrome = "";
for (let i = 0; i < str.length; i++) {
// Check for odd-length palindrome
let left = i;
let right = i;
while (left >= 0 && right < str.length && str[left] === str[right]) {
let palindrome = str.slice(left, right + 1);
if (palindrome.length > longestPalindrome.length) {
longestPalindrome = palindrome;
}
left--;
right++;
}
// Check for even-length palindrome
left = i;
right = i + 1;
while (left >= 0 && right < str.length && str[left] === str[right]) {
let palindrome = str.slice(left, right + 1);
if (palindrome.length > longestPalindrome.length) {
longestPalindrome = palindrome;
}
left--;
right++;
}
}
return longestPalindrome;
}
// Example usage:
console.log(longestPalindrome("babad")); // "bab" or "aba"
console.log(longestPalindrome("cbbd")); // "bb"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment