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

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

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

示例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
最后修改日期: 2021年6月29日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。