leetcode266.回文排列

251 阅读1分钟

266.回文排列

给定一个字符串,判断该字符串中是否可以通过重新排列组合,形成一个回文字符串。

class Solution(object):
    def canPermutePalindrome(self, s: str) -> bool:
        dic = {}
        for c in s:
            if dic.get(c) is None:
                dic[c] = 1
            else:
                dic[c] += 1
        count = 0
        for num in dic.values():  # values() 函数以列表返回字典中的所有值。
            if num % 2 == 0:
                continue
            else:
                count += 1
        if count > 1:
            return False
        return True
# 回文序列的特点是,最多只有一个元素出现了奇数次,其他元素都只能出现偶数次。
# 统计字符的数量,奇数个的只能有0个或1个。
# 所以用个字典统计各个字符出现的频次,然后再统计频次为奇数的个数。