给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。
回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。
回文串不一定是字典当中的单词。
示例1:
输入:"tactcoa"
输出:true(排列有"tacocat"、"atcocta",等等)
Python 解答:
1.统计个数
class Solution:
def canPermutePalindrome(self, s: str) -> bool:
adic = {}
for c in s:
if c not in adic.keys():
adic[c] = 1
else:
adic[c] += 1
odd = 0
even = 0
for value in adic.values():
if value % 2 == 1:
odd += 1
else:
even += 1
if len(s) % 2 == 1 and odd == 1:
return True
elif len(s) % 2 == 0 and odd == 0:
return True
else: return False
留言