A palindrome is a string that reads the same forward and backward, for example, radar, toot, and madam. In this lesson we discuss how to approach the palindrome problem using TypeScript / JavaScript.
We also discuss a more complex algorithmic challenge of writing a function to check if any permutation of a given string is a palindrome.
This is pretty neat! But for the 2 solution isAnyPermutationPalindrome you're missing.
// Check 1
if(str.length <= 1) return true;
// Check 2 No need to do anything if the first and the last char don't match. it can also include to convert the char to lowerCase.
if (str.chatAt[0] !== str.charAt(str.length - 1) return false;
then your implementation of the str.split()...
Also, the same solution can be done without forEach using the recursive strategy and using the above two conditions to exit without running into the recursive call.
function isAnyPermutationPalindrome(str) {
if (str.length <= 1) return true;
if (str.charAt(0) !== str.charAt(text.length - 1)) return false;
return isPalindrome(str.substr(1, str.length - 2));
}
Lastly, 'vicic' is not palindrome as the first and the last chat don't match.
Check 2 doesn't apply for the permutation version.
"vicic" isnt a palindrome, but one of its permutations is "civic" which is a palindrome