এই নিবন্ধে, আমরা নীচে দেওয়া সমস্যার বিবৃতিটির সমাধান সম্পর্কে শিখব।
সমস্যা বিবৃতি − একটি টেক্সট এবং একটি প্যাটার্ন দেওয়া হলে, আমাদের টেক্সটে প্যাটার্নের সমস্ত ঘটনা এবং এর পারমুটেশন (বা অ্যানাগ্রাম) মুদ্রণ করতে হবে।
এখন নিচের বাস্তবায়নে সমাধানটি পর্যবেক্ষণ করা যাক -
উদাহরণ
# maximum value MAX = 300 # compare def compare(arr1, arr2): for i in range(MAX): if arr1[i] != arr2[i]: return False return True # search def search(pat, txt): M = len(pat) N = len(txt) # countP pattern account # countTW text window count countP = [0]*MAX countTW = [0]*MAX for i in range(M): (countP[ord(pat[i]) ]) += 1 (countTW[ord(txt[i]) ]) += 1 # Traversal for i in range(M, N): # Compare current window and patten counts if compare(countP, countTW): print("Found at Index", (i-M)) # Add charcter to window (countTW[ ord(txt[i]) ]) += 1 # remove charcter from window (countTW[ ord(txt[i-M]) ]) -= 1 # Check for the last window if compare(countP, countTW): print("It is Found at Index : ", N-M) # main txt = "TUTORIALSPOINT" pat = "TOR" search(pat, txt)
আউটপুট
Found at Index 2
সমস্ত ভেরিয়েবল স্থানীয় সুযোগে ঘোষণা করা হয়েছে এবং তাদের উল্লেখ উপরের চিত্রে দেখা যাচ্ছে।
উপসংহার
এই নিবন্ধে, আমরা কীভাবে অ্যানাগ্রাম সাবস্ট্রিং অনুসন্ধানের জন্য একটি পাইথন প্রোগ্রাম তৈরি করতে পারি সে সম্পর্কে শিখেছি৷