Palindrome Permutation
Problem
Given a string, determine if a permutation of the string could form a palindrome.

Thought Process
All letters must occur in pairs with the exception of odd length strings which can at most have one letter that is not a pair
Solution
class Solution:
def canPermutePalindrome(self, s: str) -> bool:
ss = set()
for letter in s:
if letter not in ss:
ss.add(letter)
else:
ss.remove(letter)
if len(ss) > 1:
return False
return True
Time Complexity
Time: O(n)
Space: O(1) because hash set is bounded by 26 characters
Last updated
Was this helpful?