【字符串】面试题 01.04. 回文排列

题目:

解答:

如果出现以下两种情况任一,不是回文排列

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 };

猜你喜欢

转载自www.cnblogs.com/ocpc/p/12825425.html