程式語言 - LeetCode - C++ - 409. Longest Palindrome



題目:


解答:

class Solution {
public:
    int longestPalindrome(string s) {
        vector<int> cnt(128, 0);

        for (char c : s) {
            cnt[c] += 1;
        }

        int ans = 0;
        bool has_odd = false;

        for (int n : cnt) {
            if (n % 2 == 0) {
                ans += n;
            }
            else {
                ans += n - 1;
                has_odd = true;
            }
        }

        return has_odd ? ans + 1 : ans;
    }
};