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

解答:
思路:
回文数是对称的。
能构成回文数的条件是:一个字符串里面最多只有一个字符,它的数量是奇数,超过一个字符的数量为奇数就不可能构成回文串。
即:两个及以上的字符出现次数为奇,就不是回文串。
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 };

浙公网安备 33010602011771号