Skip to content

Latest commit

 

History

History
21 lines (16 loc) · 793 Bytes

266.回文排列.md

File metadata and controls

21 lines (16 loc) · 793 Bytes

266.回文排列

题目大意:(题意有点模糊,看讨论猜的)给一个字符串,判断该串重排列后能否成为回文串. 解题思路:看字符串每个字符的出现频率,出现偶数次的必然能组成回文,出现奇数次的字符最多只能有1个,这个字符即作为回文的中心.

用c++的bitset容器实现,检测到每个字符,相应位置反转.

class Solution {
public:
    bool canPermutePalindrome(string s) {
        bitset<256> b;  //长度为256,初始为0
        for (auto c : s) {  //对每个字符,将b中相应位置(ASC码表示)反转
            b.flip(c);
        }
        return b.count() < 2;  //统计b中1的个数,必须小于2
    }
};