letcode 第四题

给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。

回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。

回文串不一定是字典当中的单词。

 

输入:"tactcoa"
输出:true(排列有"tacocat""atcocta",等等)

解法1:(利用collections.Counter来构造字典判断超过两个字符或以上出现的次数)

class Solution:
    def canPermutePalindrome(self, s: str) -> bool:
        d = collections.Counter(s)
        odd = 0
        for i in d:
            if d[i] % 2 == 1:
                odd += 1
        if odd >= 2 or (odd==1 and len(s) %2 ==0):
            return False
        return True

 

 

 

 

 

 

 

 

 

 

 

 

 

 

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/palindrome-permutation-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

posted @ 2020-05-08 12:37  我和姚明一样高  阅读(147)  评论(0编辑  收藏  举报