ধরুন আমাদের দুটি স্ট্রিং s এবং t আছে, আমাদের পরীক্ষা করতে হবে যে আমরা s-এর অক্ষর অদলবদল করে t তৈরি করতে পারি কিনা।
সুতরাং, যদি ইনপুটটি s ="worldlloeh" t ="helloworld" এর মত হয়, তাহলে আউটপুট হবে True কারণ আমরা "worldlloeh" থেকে অক্ষরগুলিকে "helloworld" তৈরি করতে পারি৷
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- s_len :=s এর আকার, t_len :=t এর আকার
- যদি s_len t_len এর মত না হয়, তাহলে
- মিথ্যে ফেরত দিন
- freq :=একটি মানচিত্র যাতে সমস্ত অক্ষর এবং তাদের ফ্রিকোয়েন্সি s তে সংরক্ষণ করা যায়
- আমি 0 থেকে t_len রেঞ্জের জন্য, কর
- freq[t[i]] :=freq[t[i]] - 1
- যদি freq[t[i]] <0, তারপর
- মিথ্যে ফেরত দিন
- সত্য ফেরান
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
from collections import defaultdict def solve(s, t): s_len = len(s) t_len = len(t) if (s_len != t_len): return False freq = defaultdict(int) for char in s : freq[char] += 1 for i in range(t_len) : freq[t[i]] -= 1 if freq[t[i]] < 0: return False return True s = "worldlloeh" t = "helloworld" print(solve(s, t))
ইনপুট
"worldlloeh", "helloworld"
আউটপুট
True