贪心-leetcode409最长回文串

贪心-leetcode409最长回文串

贪心-leetcode409最长回文串_第1张图片

思考:

  • 总的思路:从数字中选择个数是偶数的去union,最后如果有过奇数则多union一个作为中心;
  • 从数组中select然后
  • feasible是如果该数字为偶数则union到两边,如果为奇数则按照偶数处理再给中心添加一个,如果多个奇数则按照一个奇数处理
class Solution {
public:
    int longestPalindrome(string s) {
        unordered_map<char,int>count;
        int ans=0;
        for(char c: s)
            count[c]++;
        for(auto p:count){
            int v=p.second;
            ans+=v/2*2;
            if(ans%2==0&&v%2==1){
                ans+=1;
            }
        }
        return ans;
    }
};

你可能感兴趣的:(leetcide,c++)