যদি দুটি স্ট্রিং আইসোমরফিক (isomorphic) কিনা তা যাচাই করতে হয়, তবে একটি পদ্ধতি সংজ্ঞায়িত করা হয় যা দুটি স্ট্রিং প্যারামিটার হিসেবে নেয়। এটি স্ট্রিংয়ের দৈর্ঘ্যের মাধ্যমে ইটারেট করে এবং ord পদ্ধতি ব্যবহার করে একটি ক্যারেক্টারকে পূর্ণসংখ্যায় রূপান্তর করে।
উদাহরণ
নিচে এর প্রদর্শন দেওয়া হলো:
MAX_CHARS = 256
def check_isomorphic(str_1, str_2):
len_1 = len(str_1)
len_2 = len(str_2)
if len_1 != len_2:
return False
marked = [False] * MAX_CHARS
map = [-1] * MAX_CHARS
for i in range(len_2):
if map[ord(str_1[i])] == -1:
if marked[ord(str_2[i])] == True:
return False
marked[ord(str_2[i])] = True
map[ord(str_1[i])] = str_2[i]
elif map[ord(str_1[i])] != str_2[i]:
return False
return True
str_1 = 'aababa'
str_2 = 'xxyyxx'
print("প্রথম স্ট্রিং হলো :")
print(str_1)
print("দ্বিতীয় স্ট্রিং হলো :")
print(str_2)
print("প্রথম স্ট্রিংটি কি আইসোমরফিক?")
print(check_isomorphic("aab", "xxy"))
print("দ্বিতীয় স্ট্রিংটি কি আইসোমরফিক?")
print(check_isomorphic("aab", "xyz"))
আউটপুট
প্রথম স্ট্রিং হলো : aababa দ্বিতীয় স্ট্রিং হলো : xxyyxx প্রথম স্ট্রিংটি কি আইসোমরফিক? True দ্বিতীয় স্ট্রিংটি কি আইসোমরফিক? False
ব্যাখ্যা
check_isomorphicনামক একটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে।এই পদ্ধতিটি দুটি স্ট্রিং প্যারামিটার হিসেবে নেয়।
এটি স্ট্রিংয়ের দৈর্ঘ্য নির্ণয় করে।
নিশ্চিত করতে হয় যে স্ট্রিং দুটির দৈর্ঘ্য সমান নয়।
দুটি তালিকা তৈরি করা হয় যেখানে একটি
Falseমান এবং অন্যটি-1মান ধারণ করে।দ্বিতীয় স্ট্রিংয়ের দৈর্ঘ্য ইটারেট করা হয় এবং প্রথম স্ট্রিংয়ের ক্যারেক্টারগুলো পূর্ণসংখ্যায় রূপান্তর করা হয়।
Falseমানযুক্ত তালিকের সংশ্লিষ্ট মান পরিবর্তন করা হয়।ফাংশনের বাইরে দুটি স্ট্রিং সংজ্ঞায়িত করা হয় এবং কনসোলে প্রদর্শন করা হয়।
এই স্ট্রিংগুলো প্যারামিটার হিসেবে পাস করে পদ্ধতিটি কল করা হয়।
আউটপুট কনসোলে প্রদর্শন করা হয়।