ধরুন আমাদের কাছে ছোট হাতের বর্ণমালার অক্ষরগুলির একটি স্ট্রিং আছে, এবং আরেকটি সংখ্যা k, আমাদের স্ট্রিংটিতে প্রয়োজনীয় পরিবর্তনের ন্যূনতম সংখ্যা খুঁজে বের করতে হবে যাতে ফলস্বরূপ স্ট্রিংটিতে সর্বাধিক k স্বতন্ত্র অক্ষর থাকে। এই ক্ষেত্রে পরিবর্তনটি আসলে একটি একক অক্ষরকে অন্য অক্ষরে পরিবর্তন করছে।
সুতরাং, যদি ইনপুটটি s ="wxxyyzzxx", k =3 এর মত হয়, তাহলে আউটপুট হবে 1, যেহেতু আমরা 3টি স্বতন্ত্র অক্ষর (x, y, এবং z) পেতে "w" অক্ষরটি সরিয়ে দিতে পারি।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
গণনা :=s এবং তাদের কম্পাঙ্কের প্রতিটি অক্ষরের একটি মানচিত্র
-
sv :=ফ্রিকোয়েন্সি মানগুলির সাজানো তালিকা
-
উত্তর :=0
-
0 থেকে (গণনার মাপ) - k - 1, do
এর মধ্যে i এর জন্য-
উত্তর :=ans + sv[i]
-
-
উত্তর ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
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