मान लीजिए कि हमारे पास लोअरकेस, अपरकेस, संख्यात्मक और विशेष वर्णों के साथ एक स्ट्रिंग है। हमें यह जांचना होगा कि किसी एक वर्ण की आवृत्ति स्ट्रिंग की लंबाई के आधे से अधिक है या नहीं।
इसलिए, यदि इनपुट s ="CC*Ca5&CC" जैसा है, तो आउटपुट सही होगा क्योंकि 'C' की आवृत्ति 5 है और स्ट्रिंग की लंबाई 9 है। (5> 9/2)।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- freq :=s के वर्णों की बारंबारता वाला नक्शा
- फ़्रीक में प्रत्येक ch के लिए, करें
- यदि ch की आवृत्ति> (s / 2 का आकार), तो
- सही लौटें
- यदि ch की आवृत्ति> (s / 2 का आकार), तो
- झूठी वापसी
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण कोड
from collections import defaultdict def solve(s): freq = defaultdict(int) for ch in s: freq[ch] += 1 for ch in freq: if freq[ch] > len(s) // 2: return True return False s = "CC*Ca5&CC" print(solve(s))
इनपुट
"CC*Ca5&CC"
आउटपुट
True