python簡單算法04:判斷一個字符串是否爲迴文串的排列之一

問題簡介
解答

問題簡介

給定一個字符串,編寫一個函數判定其是否爲某個迴文串的排列之一。
迴文串是指正反兩個方向都一樣的單詞或短語,排列是指字母重新排列,迴文串不一定是字典中的單詞。
例如:
輸入:“tactcoa”
輸出:True(排列有“tacocat”、"atcocta"等等)

解答

思路:
所有字符中,統計每個字符出現的次數,最多隻有一個字符的統計次數是奇數,剩下的必須都是偶數。即奇數只能爲1或0個,例如acca,accbcca等

from collections import Counter

def palindromic(s):
    #統計所有字符出現的次數
    num=list(Counter(s).values())
    #統計奇數個數
    odd=[x for x in num if x%2!=0]
    #判斷奇數個數爲0或1
    if len(odd) in [0,1]:
        return True
    return False

運行結果:
在這裏插入圖片描述
關於collections模塊請見collections

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章