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=

相關文章
相關標籤/搜索