题目:
解答:
如果出现以下两种情况任一,不是回文排列
1、两个及以上的字符出现次数为奇;
1 class Solution { 2 public: 3 bool canPermutePalindrome(string s) 4 { 5 std::map<char, int> mp; 6 for ( int i = 0; i < s.size(); i++) 7 { 8 mp[s[i]]++; 9 } 10 11 int odd = 0; 12 for (int i = 0; i < mp.size(); i++) 13 { 14 if (mp[i] % 2 == 1) 15 { 16 odd += 1; 17 } 18 } 19 20 if (odd >= 2) 21 { 22 return false; 23 } 24 25 return true; 26 27 } 28 };