Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình để tìm cơ hội bắt buộc tối thiểu để tạo thành một chuỗi với K ký tự duy nhất trong Python

Giả sử chúng ta có một chuỗi s gồm các ký tự chữ cái viết thường và một số k khác, chúng ta phải tìm số lượng thay đổi cần thiết tối thiểu trong chuỗi để chuỗi kết quả có ít nhất k ký tự phân biệt. Trong trường hợp này, sự thay đổi thực sự là thay đổi một ký tự đơn lẻ thành bất kỳ ký tự nào khác.

Vì vậy, nếu đầu vào là s =​​"wxxyyzzxx", k =3, thì đầu ra sẽ là 1, vì chúng ta có thể loại bỏ bản tin "w" để có 3 ký tự riêng biệt (x, y và z).

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • count:=bản đồ của từng ký tự tính bằng s và tần số của chúng

  • sv:=danh sách các giá trị tần số được sắp xếp

  • ans:=0

  • đối với tôi trong phạm vi 0 đến (kích thước đếm) - k - 1, thực hiện

    • ans:=ans + sv [i]

  • trả lại ans

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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))

Đầu vào

"wxxyyzzxx",3

Đầu ra

1