Skip to content

Instantly share code, notes, and snippets.

@headquarters
Created June 15, 2022 14:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save headquarters/daf9d2b3860839ce5f1f469485febb90 to your computer and use it in GitHub Desktop.
Save headquarters/daf9d2b3860839ce5f1f469485febb90 to your computer and use it in GitHub Desktop.
Longest palindrome
function longestPalindrome(s: string): string {
let result = "";
let resultLength = 0;
for (let i = 0; i < s.length; i++) {
// odd length palindromes
let leftPointer = i, rightPointer = i;
while (leftPointer >= 0 && rightPointer < s.length && s[leftPointer] === s[rightPointer]) {
if ((rightPointer - leftPointer + 1) > resultLength) {
result = s.slice(leftPointer, rightPointer + 1);
resultLength = result.length;
}
leftPointer--;
rightPointer++;
}
// even length palindromes
leftPointer = i;
rightPointer = i + 1;
while (leftPointer >= 0 && rightPointer < s.length && s[leftPointer] === s[rightPointer]) {
if ((rightPointer - leftPointer + 1) > resultLength) {
result = s.slice(leftPointer, rightPointer + 1);
resultLength = result.length;
}
leftPointer--;
rightPointer++;
}
}
return result;
};
@headquarters
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment