একটি লোয়ারকেস স্ট্রিং দেওয়া আছে। মাঝপথ থেকে ভাগ করলে দুটি অর্ধেকের মধ্যে কমপক্ষে একটি ক্যারেক্টারের ফ্রিকোয়েন্সি ভিন্ন আছে কিনা যাচাই করতে হবে। বিজোড় দৈর্ঘ্য হলে মাঝের ক্যারেক্টার বাদ দেওয়া হয়।
উদাহরণ
ইনপুট: s = "helloohekk"
আউটপুট: True
ব্যাখ্যা: বাম অংশ "hello", ডান অংশ "ohekk" - ফ্রিকোয়েন্সি ভিন্ন।
অ্যালগরিদম
- বাম ও ডান অর্ধেকের ফ্রিকোয়েন্সি ম্যাপ বানান।
- যেকোনো ক্যারেক্টারের জন্য ফ্রিকোয়েন্সি ভিন্ন হলে
True।
উদাহরণ কোড
from collections import defaultdict
def solve(s):
left_freq = defaultdict(int)
right_freq = defaultdict(int)
n = len(s)
for i in range(n // 2):
left_freq[s[i]] += 1
for i in range(n // 2, n):
right_freq[s[i]] += 1
for ch in s:
if right_freq[ch] != left_freq[ch]:
return True
return False
s = "helloohekk"
print(solve(s)) # Output: True
ইনপুট
"helloohekk"
আউটপুট
True