2月-インタビュー質問01.04。回文の配置

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を超える場合、それは回文ではありません。

 

おすすめ

転載: blog.csdn.net/weixin_37724529/article/details/113741954