মনে করুন s নামে একটি 숫রিক স্ট্রিং আছে। আমাদের যাচাই করতে হবে কোনো ব্যবস্থা আছে কি যেখানে এক পেয়ার একই ক্যারেক্টার এবং বাকি স্ট্রিং যেকোনো সংখ্যক একই ক্যারেক্টারের ট্রিপলেট গঠন করে।
ইনপুট s = "21133123" হলে আউটপুট হবে True, কারণ দুটি ২ আছে "22" পেয়ার বানাতে এবং "111", "333" হিসেবে দুটি ট্রিপলেট।
সমাধানের ধাপসমূহ:
- d := s-এ উপস্থিত প্রতিটি উপাদানের ফ্রিকোয়েন্সি ধারণকারী লিস্ট
- d-এ প্রতিটি k-এর জন্য:
- d[k] := d[k] - 2
- যদি সব i-এর জন্য d[i] mod 3 == 0 হয়, তবে True ফেরত দিন
- d[k] := d[k] + 2
- False ফেরত দিন
উদাহরণ
বাস্তবায়ন:
from collections import Counter
def solve(s):
d = Counter(s)
for k in d:
d[k] -= 2
if all(d[i] % 3 == 0 for i in d):
return True
d[k] += 2
return False
s = "21133123"
print(solve(s))
ইনপুট
"21133123"
আউটপুট
True