Python程式:查詢形成包含K個唯一字元的字串所需的最少更改次數


假設我們有一個包含小寫字母字元的字串s,還有一個數字k,我們必須找到對字串進行的最少更改次數,以便生成的字串最多包含k個不同的字元。在這種情況下,更改實際上是將單個字元更改為任何其他字元。

因此,如果輸入類似於s = "wxxyyzzxx",k = 3,則輸出將為1,因為我們可以刪除字母“w”以獲得3個不同的字元(x、y和z)。

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

  • count := s中每個字元及其頻率的對映

  • sv := 排序後的頻率值列表

  • ans := 0

  • 對於範圍從0到(count的大小) - k - 1的i,執行:

    • ans := ans + sv[i]

  • 返回ans

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

示例

線上演示

from collections import Counter
class Solution:
   def solve(self, s, k):
      count = Counter(s)
      sv = sorted(count.values())
      ans = 0
      for i in range(len(count) - k):
         ans += sv[i]
      return ans

ob = Solution()
s = "wxxyyzzxx"
k = 3
print(ob.solve(s, k))

輸入

"wxxyyzzxx",3

輸出

1

更新於:2020年10月9日

407 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.