যখন দুটি স্ট্রিং একই অক্ষর থাকে কিন্তু ভিন্ন ক্রমে সাজানো হয় তখন তাদের বলা হয় অ্যানাগ্রাম। উদাহরণস্বরূপ, স্পট এবং পোস্ট হল অ্যানাগ্রাম কারণ তাদের একই অক্ষরগুলি বিভিন্ন শব্দ গঠন করে। এই প্রবন্ধে আমরা দেখব কিভাবে আমরা দুইটি স্ট্রিং একে অপরের অ্যানাগ্রাম কিনা তা পরীক্ষা করতে পারি।
এর জন্য আমরা সংগ্রহ নামক পাইথন মডিউল ব্যবহার করি। এটি তালিকা, ডিক্ট, সেট, টুপল ইত্যাদির মতো ডেটা সংগ্রহের জন্য ব্যবহার করা হয়। এগুলি অন্তর্নির্মিত সংগ্রহের উদাহরণ। ফাংশন কাউন্টার() একটি উপাদান একটি সংগ্রহে কতবার উপস্থিত রয়েছে তা কেবল গণনা করে এবং উপাদান এবং এর গণনা দেখানো অভিধান হিসাবে ফলাফলটি প্রদান করে। সুতরাং, যদি দুটি স্ট্রিং-এ উপস্থিত প্রতিটি অক্ষরের সাথে মিলে যায় তাহলে আমরা সেগুলোকে অ্যানাগ্রাম হিসেবে বিবেচনা করি।
উদাহরণ
from collections import Counter StringA = 'top spot' StringB = 'pot post' # Print the elements as adictionary print Counter(StringA) print Counter(StringB) # Compare the dictionaries 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