【程序员面试金典】:04.回文排列

文章目录

  • 回文排列
    • 题目描述
    • code

回文排列

题目描述

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

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

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

示例1:

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

code

# 给定一个字符串,编写一个函数判定是否为某个回文串的排列一致
class Solution:
    def canPermutePalindrome(self,s):
        #使用字典进行排序
        h = {} # dict
        k  =0
        for i in s:
            if i not in h.keys():
                h[i]=0
            else:
                h[i]+=1 # value值加1
        #遍历进行统计
        for i in h.values():
            if(i%2==0):
                k+=1
        print("k=",k)
        if k>1:
            return False
        else:
            return  True


if __name__ == '__main__':
    s = Solution()
    print(s.canPermutePalindrome("tactcoa"))

你可能感兴趣的:(刷题,Python)