ধরুন আমাদের কাছে ছোট হাতের, বড় হাতের, সংখ্যাসূচক এবং বিশেষ অক্ষর সহ একটি স্ট্রিং আছে। আমাদের পরীক্ষা করতে হবে যে কোনো একটি অক্ষরের ফ্রিকোয়েন্সি স্ট্রিং-এর দৈর্ঘ্যের অর্ধেকের বেশি কি না।
সুতরাং, যদি ইনপুটটি s ="CC*Ca5&CC" এর মত হয়, তাহলে আউটপুটটি True হবে কারণ 'C'-এর ফ্রিকোয়েন্সি 5 এবং স্ট্রিংয়ের দৈর্ঘ্য 9। (5> 9/2)।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- freq :=s অক্ষরের ফ্রিকোয়েন্সি সম্বলিত একটি মানচিত্র
- প্রতিটি ch এর জন্য freq, do
- যদি 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