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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP