Implement algorithm to know if a string is palindrome and the longest palindrome in a string
Anónimo
function isPalindrome(input) { if (!input || typeof input !== 'string') throw 'Not a string.'; var string = input.replace(/[^0-9a-zA-Z]+/ig, '').toLowerCase(); var reverse = string.split('').reverse().join(''); return string === reverse; } function longestPalindrome(input) { if (!input || typeof input !== 'string') throw 'Not a string.'; var words = input.split(' '); var lengths = []; words.forEach((word) => { if (isPalindrome(word)) { lengths.push(word); } }); lengths.sort((a, b) => b.length - a.length); return lengths[0]; } console.log(isPalindrome('A man, a plan, a cat, a ham, a yak, a yam, a hat, a canal-Panama!')); // returns true console.log(longestPalindrome('neuquen, manam, notApalindrome')); // returns 'neuquen,'