Skip to content

Instantly share code, notes, and snippets.

@leegould
Created November 22, 2016 21:59
Show Gist options
  • Save leegould/8b33c2bee338ac452443141b65f82268 to your computer and use it in GitHub Desktop.
Save leegould/8b33c2bee338ac452443141b65f82268 to your computer and use it in GitHub Desktop.
Longest palindrome
/**
* @param {string} s
* @return {string}
*/
var longestPalindrome = function(s) {
var longest = s[0];
for(var i = 0; i < s.length;i++){
palen = '';
var j = -1;
var k = -1;
if (s[i] === s[i + 1]) {
palen = s[i] + s[i + 1];
j = i - 1;
k = i + 2;
while(j > -1 && k < s.length){
if (s[j] == s[k]) {
palen = s[j] + palen + s[k];
j--;
k++;
} else {
break;
}
}
if (palen.length > longest.length) {
longest = palen;
}
}
if (i > 0 && s[i - 1] === s[i + 1]) {
palen = s[i - 1] + s[i] + s[i + 1];
j = i - 2;
k = i + 2;
while(j > -1 && k < s.length){
if (s[j] == s[k]) {
palen = s[j] + palen + s[k];
j--;
k++;
} else {
break;
}
}
if (palen.length > longest.length) {
longest = palen;
}
}
}
return longest;
};
// Test Cases
console.log(longestPalindrome('a'));
console.log(longestPalindrome('aaaa'));
console.log(longestPalindrome('abba'));
console.log(longestPalindrome('abbd'));
console.log(longestPalindrome('abbba'));
console.log(longestPalindrome('ababa'));
console.log(longestPalindrome('dfklsdfgwerkooiwerpppooopppwerwetmfdgmldfg'));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment