কম্পিউটার টিউটোরিয়াল

পাইথনে Kটি অনন্য ক্যারেক্টার সম্বলিত স্ট্রিং তৈরির জন্য ন্যূনতম পরিবর্তন সংখ্যা খুঁজে বের করার প্রোগ্রাম


ধরা যাক s নামক একটি ছোট হাতের অ্যালফাবেট স্ট্রিং এবং একটি সংখ্যা k আছে। স্ট্রিং-এ ন্যূনতম কতগুলো ক্যারেক্টার পরিবর্তন করলে সর্বোচ্চ kটি স্বতন্ত্র ক্যারেক্টার থাকে তা বের করতে হবে।

উদাহরণ: s = "wxxyyzzxx", k = 3 হলে আউটপুট 1, কারণ 'w' বাদ দিলে ৩টি স্বতন্ত্র ক্যারেক্টার (x, y, z) থাকে।

সমাধানের ধাপসমূহ

  • count := s-এ প্রতিটি ক্যারেক্টারের ফ্রিকোয়েন্সি ম্যাপ (Counter)
  • sv := ফ্রিকোয়েন্সি মানগুলোর সর্টেড তালিকা
  • ans := 0
  • i = 0 থেকে len(count) - k - 1 পর্যন্ত: 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
  1. পাইথনে দুটি স্ট্রিং থেকে অনন্য ক্যারেক্টার নিয়ে নতুন স্ট্রিং তৈরি

  2. পাইথনে স্ট্রিং-এ সব ক্যারেক्टर ইউনিক কিনা চেক করা

  3. পাইথনে স্ট্রিং-এ ডুপ্লিকেট ক্যারেক্টার খুঁজে বের করার প্রোগ্রাম

  4. পাইথন প্রোগ্রাম: স্ট্রিং-এ মিরর ক্যারেক্টার বের করা