要求
给定一个字符串,判断该字符串中是否可以通过重新排列组合,形成一个回文字符串。
示例 1:
输入: "code"
输出: false
示例 2:
输入: "aab"
输出: true
示例 3:
输入: "carerac"
输出: true
核心代码
class Solution:
def canPermutePalindrome(self, s: str) -> 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
解题思路:行成回文的关键就是单个的字母可以有一个在最中心或者没有,其他的元素都是2的倍数个,我们只要找的就是单个字母的个数,统计即可。