1: class Solution { 2: public: 3: int longestPalindrome(string s) { 4: unordered_map<char, int> mp; 5: for (c : s) mp[c]++; 6: int res = 0, odd = 0; 7: for (auto it : mp) { 8: if (it.second & 1) {
res += it.second - 1, odd = 1;
} 9: else res += it.second; 10: } 11:
return res + odd;
12: } 13: };
Saturday, October 8, 2016
409. Longest Palindrome
Very straightforward solution. Count the frequency for characters in the input string. If a character appears even times, it must be a part of palindrome. On the other hand, if a character appears odd times, then we want to add (odd times - 1). In the end, if there is odd time character, the return value should be added one.
Labels:
google,
hash,
hash map,
hash table,
leetcode
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment