程序查找在Python中形成具有K个唯一字符的字符串的最小机会

假设我们有一个由小写字母字符组成的字符串s和另一个数字k,我们必须找出字符串中所需更改的最小数量,以便最终的字符串最多具有k个不同的字符。在这种情况下,更改实际上是将单个字符更改为任何其他字符。

因此,如果输入像s =“ wxxyyzzxx”,k = 3,则输出将为1,因为我们可以删除字母“ w”以得到3个不同的字符(x,y和z)。

为了解决这个问题,我们将遵循以下步骤-

  • count:= s中每个字符及其频率的映射

  • sv:=频率值的排序列表

  • 回答:= 0

  • 对于0到(计数大小)-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
猜你喜欢