Skip to content

Latest commit

 

History

History

409-LongestPalindrome

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Longest Palindrome

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: O(n), Space Complexity: O(n)

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)

Time Complexity: O(n), Space Complexity: O(n)