मान लीजिए हमारे पास लोअरकेस वर्णों की एक स्ट्रिंग s और एक संख्या k है। हमें स्ट्रिंग में न्यूनतम आवश्यक परिवर्तनों की संख्या ढूंढनी है ताकि परिणामी स्ट्रिंग में अधिकतम k विशिष्ट वर्ण हों। यहां परिवर्तन का अर्थ है एक वर्ण को किसी अन्य वर्ण में बदलना।
उदाहरण के लिए, यदि इनपुट s = "wxxyyzzxx", k = 3 है, तो आउटपुट 1 होगा, क्योंकि हम 'w' को हटाकर 3 विशिष्ट वर्ण (x, y, z) प्राप्त कर सकते हैं।
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
count := s में प्रत्येक वर्ण और उनकी आवृत्ति का मैप।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