题目链接:https://leetcode-cn.com/problems/palindrome-permutation/
题目描述
给定一个字符串,判断该字符串中是否可以通过重新排列组合,形成一个回文字符串。
示例 1:
输入: "code"
输出: false
示例 2:
输入: "aab"
输出: true
示例 3:
输入: "carerac"
输出: true
思路
// 只有1个或0割字符出现奇数次,其余出现偶数次
class Solution {
public:
bool canPermutePalindrome(string s) {
unordered_map<char, int> m;
for(char c:s)
m[c]+=1;
int odd = 0;
for(auto it = m.begin(); it!=m.end();++it)
if(it->second % 2 == 1)
odd ++;
return (odd == 0) || (odd == 1);
}
};