দুটি স্ট্রিংয়ের ক্যারেক্টার সেম থাকলেও অর্ডার ভিন্ন হলে সেগুলো অনুপ্রবেশ (anagram)। উদাহরণ: "spot" এবং "post"।
`collections.Counter()` ফাংশনটি প্রতিটি ক্যারেক্টার কাউন্ট করে ডিকশনারি রিটার্ন করে। দুটি স্ট্রিংয়ের Counter অবজেক্ট সমান হলে সেগুলো anagram।
উদাহরণ
from collections import Counter
StringA = 'top spot'
StringB = 'pot post'
print(Counter(StringA))
print(Counter(StringB))
if Counter(StringA) == Counter(StringB):
print("StringA and StringB are Anagrams")
আউটপুট
Counter({'p': 2, 't': 2, 'o': 2, 's': 1, ' ': 1})
Counter({'p': 2, 't': 2, 'o': 2, 's': 1, ' ': 1})
StringA and StringB are Anagrams
স্পেস ও কাউন্ট হয়। স্পেস ইگنোর করতে `replace(" ", "")` ব্যবহার করুন। এটি O(n) টাইমে কাজ করে।