LeetCode刷题实战266:回文排列

算法的重要性,我就很少说了吧,想去大厂,就必需要通过基础知识和业务逻辑面试+算法面试。因此,为了提升你们的算法能力,后续天天带你们作一道算法题,题目就从LeetCode上面选 !今天和你们聊的问题叫作 回文排列,咱们先来看题面:

Given a string, determine if a permutation of the string could form a palindrome.面试

给定一个字符串,判断该字符串中是否能够经过从新排列组合,造成一个回文字符串。

示例

 

示例 1:

输入: “code”
输出: false

示例 2:

输入: “aab”
输出: true

示例 3:

输入: “carerac”
输出: true算法

 

解题

统计字符的数量,奇数个的只能有0个或1个。因此用个字典统计各个字符出现的频次,而后再统计频次为奇数的个数。

class Solution:
    def canPermutePalindrome(self, s: str) -> bool:
        dic = {}
        for c in s:
            if dic.get(c) == None:
                dic[c] = 1
            else:
                dic[c] += 1
        count = 0
        for num in dic.values():
            if num % 2 == 0:
                continue
            else:
                count += 1
        if count > 1:
            return False
        return Trueide

好了,今天的文章就到这里,若是以为有所收获,大家的支持是我最大的动力 。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

相关文章
相关标签/搜索