给定一个字符串,判断该字符串中是否可以通过重新排列组合,形成一个回文字符串。
示例 1:
输入: "code"
输出: false
示例 2:
输入: "aab"
输出: true
示例 3:
输入: "carerac"
输出: true
思路:
回文序列的特点是,最多只有一个元素出现了奇数次,其他元素都只能出现偶数次。
class Solution(object):
def canPermutePalindrome(self, s):
"""
:type s: str
:rtype: bool
"""
record = dict()
for i, char in enumerate(s):
record[char] = record.get(char, 0) + 1
odd_cnt = 0
for key, val in record.items():
if val % 2:
odd_cnt += 1
if odd_cnt > 1:
return False
return True