409. Longest Palindrome
Easy
Given a string
s
which consists of lowercase or uppercase letters, return the length of the longest palindrome that can be built with those letters.Letters are case sensitive, for example,
"Aa"
is not considered a palindrome here.Example 1:
Input: s = "abccccdd"
Output:
7
Explanation:
One longest palindrome that can be built is "dccaccd", whose length is 7.
Example 2:
Input: s = "a"
Output:
1
Explanation:
The longest palindrome that can be built is "a", whose length is 1.
Constraints:
1 <= s.length <= 2000
s
consists of lowercase and/or uppercase English letters only.
Runtime: 0 ms, faster than 100.00%
Memory Usage: 2 MB, less than 83.31%
func longestPalindrome(s string) int {
counter := make([]int, 52)
for _, val := range s {
if val>='A' && val<='Z' {
counter[val-'A'+26]++
} else if val>='a' && val<='z' {
counter[val-'a']++
}
}
odd := 0
sum := 0
for _, val := range counter {
if val%2 == 0 {
sum += val
} else {
sum += val-1
odd ++
}
}
if odd>0 { return sum+1 }
return sum
}
Last modified 7mo ago