Problem can be found in here!
Solution1: Hash Table
def longestPalindrome(s: str) -> int:
memo = {}
for token in s:
try:
memo[token] += 1
except KeyError:
memo[token] = 1
longest_length = 0
odd_flag = False
for i in memo.values():
if i % 2 == 0:
longest_length += i
else:
odd_flag = True
longest_length += (i-1)
return longest_length + 1 if odd_flag else longest_length
Time Complexity: , Space Complexity:
Solution2: Set
def longestPalindrome(s: str) -> int:
memo = set()
for token in s:
try:
memo.remove(token)
except KeyError:
memo.add(token)
has_odd_number = len(memo) > 0
return len(s) - len(memo) + 1 if has_odd_number else len(s)