class Solution:
def canPermutePalindrome(self, s: str) -> bool:
#hash表思想
count = collections.Counter(s)
res = 0
#如果是回文数的话,那么value应该都是偶数,至多出现一个奇数,所有奇数如果出现的次数大于1就不是回文
for value in count.values():
if value % 2:
res += 1
if res > 1 :
return False
return True
#消消乐的思想,回文的话必须成对出现,如果成对出现就消掉
S = set()
for char in s:
if char not in S:
S.add(char)
else:
S.remove(char)
#如果字符串的长度是奇数的话,那么就允许最后生一个孤儿元素,否则就不剩
return len(S)<=1
- 言うまでもなく、回文文字列の定義、2つの方法
- シャオシャオル
- 回文文字列をペアで表示する必要がある場合は、すべてのペアをノックアウトすると、最後に最大で1つの孤立した要素が残ります。
- ハッシュ表
- 統計では、最大で1つの要素があります。この要素が2を超える場合、それは回文ではありません。
- シャオシャオル