Given a string, write a function to check if it is a permutation of a palin drome. A palindrome is a word or phrase that is the same forwards and backwards. A permutation is a rearrangement of letters. The palindrome does not need to be limited to just dictionary words.
We use a hash table \(cnt\) to store the occurrence count of each character. If more than \(1\) character has an odd count, then it is not a palindrome permutation.
The time complexity is \(O(n)\), and the space complexity is \(O(n)\). Here, \(n\) is the length of the string.
We use a hash table \(vis\) to store whether each character has appeared. If it has appeared, we remove the character from the hash table; otherwise, we add the character to the hash table.
Finally, we check whether the number of characters in the hash table is less than \(2\). If it is, then it is a palindrome permutation.
The time complexity is \(O(n)\), and the space complexity is \(O(n)\). Here, \(n\) is the length of the string.