collections.Counter ব্যবহার করে ক্যারেক্টার ফ্রিকোয়েন্সি গড়ে, সেট দিয়ে ইউনিক ফ্রিকোয়েন্সি চেক করা হয় যে সব ফ্রিকোয়েন্সি সমান কিনা।
উদাহরণ
from collections import Counter
def check_frequencies(s):
freq = Counter(s)
unique_freq = list(set(freq.values()))
if len(unique_freq) > 2:
print("ফ্রিকোয়েন্সি সমান নয়")
elif len(unique_freq) == 2 and abs(unique_freq[1] - unique_freq[0]) > 1:
print("ফ্রিকোয়েন্সি সমান নয়")
else:
print("ফ্রিকোয়েন্সি সমান")
text = "xxxyyyzzzzzz"
print("স্ট্রিং:", text)
check_frequencies(text)
আউটপুট
স্ট্রিং: xxxyyyzzzzzz ফ্রিকোয়েন্সি সমান নয়
ব্যাখ্যা
Counterদিয়ে প্রতিটি ক্যারেক্টারের ফ্রিকোয়েন্সি গণনা।set(freq.values())দিয়ে ইউনিক ফ্রিকোয়েন্সি সংখ্যা।>2 ইউনিক ফ্রিকোয়েন্সি হলে সমান হতে পারে না।
২টি ইউনিক ফ্রিকোয়েন্সি হলে তাদের পার্থক্য >1 হলে সমান নয়।
এই লজিক "Sherlock and the Valid String" সমস্যায় ব্যবহার হয়।