Python程式:檢查能否從給定字串字元中建立k個迴文?


假設我們有一個字串s和另一個數字k,我們必須檢查是否可以使用s中的所有字元建立k個迴文。

因此,如果輸入類似於s = "amledavmel" k = 2,則輸出將為True,因為我們可以建立"level"和"madam"。

為了解決這個問題,我們將遵循以下步驟:

  • d := 一個儲存每個唯一字元及其頻率的對映

  • cnt := 0

  • 對於d中的每個鍵,執行:

    • 如果d[key]是奇數,則

      • cnt := cnt + 1

    • 如果cnt > k,則

      • 返回False

  • 返回True

讓我們看看下面的實現,以便更好地理解。

示例

from collections import Counter

class Solution:
   def solve(self, s, k):
      d = Counter(s)
         cnt = 0
         for key in d:
            if d[key] & 1:
               cnt += 1
            if cnt > k:
               return False
         return True

ob = Solution()
s = "amledavmel"
k = 2
print(ob.solve(s, k))

輸入

"amledavmel",2

輸出

True

更新於:2020年11月10日

148 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告