मान लीजिए कि हमारे पास एक लोअरकेस स्ट्रिंग s है। हमें यह जांचना होगा कि एक वर्ण को हटाने के बाद सभी वर्णों की आवृत्ति समान है या नहीं।
इसलिए, यदि इनपुट s ="abbc" जैसा है, तो आउटपुट सही होगा क्योंकि हम स्ट्रिंग "abc" प्राप्त करने के लिए एक b को हटा सकते हैं, जहां प्रत्येक तत्व की आवृत्ति 1 है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- घटना:=s के सभी वर्णों और उनकी आवृत्तियों के साथ एक नक्शा
- यदि s में सभी वर्णों की आवृत्ति समान है, तो
- सही लौटें
- एस में प्रत्येक चार के लिए, करें
- घटना[चार] :=घटना[चार] - 1
- यदि s में सभी वर्णों की आवृत्ति समान है, तो
- सही लौटें
- घटना[चार] :=घटना[चार] + 1
- झूठी वापसी
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
from collections import defaultdict def allSame(occurrence): counts = list(occurrence.values()) return all(element == counts[0] for element in counts) def solve(s): occurrence = defaultdict(int) for char in s: occurrence[char] += 1 if allSame(occurrence): return True for char in s: occurrence[char] -= 1 if allSame(occurrence): return True occurrence[char] += 1 return False s = "abbc" print(solve(s))
इनपुट
"abbc"
आउटपुट
True