जब यह जांचने की आवश्यकता होती है कि क्या दो तार प्रकृति में समरूप हैं, तो एक विधि परिभाषित की जाती है जो दो तारों को पैरामीटर के रूप में लेती है। यह स्ट्रिंग की लंबाई के माध्यम से पुनरावृति करता है, और एक वर्ण को 'ऑर्ड' विधि का उपयोग करके एक पूर्णांक में परिवर्तित करता है।
उदाहरण
नीचे उसी का एक प्रदर्शन है
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("The first string is :")
print(str_1)
print("The second string is :")
print(str_2)
print("Is the first string isomorphic ?")
print(check_isomorphic("aab","xxy"))
print("Is the second string isomorphic ?")
print(check_isomorphic("aab","xyz")) आउटपुट
The first string is : aababa The second string is : xxyyxx Is the first string isomorphic ? True Is the second string isomorphic ? False
स्पष्टीकरण
-
'check_isomorphic' नाम की एक विधि परिभाषित की गई है।
-
यह विधि पैरामीटर के रूप में दो तार लेती है।
-
यह तार की लंबाई निर्धारित करता है।
-
यह सुनिश्चित करना आवश्यक है कि तार समान लंबाई के न हों।
-
दो सूचियाँ बनाई जाती हैं जहाँ एक में 'गलत' मान होते हैं और दूसरे में '-1' मान होते हैं।
-
दूसरी स्ट्रिंग की लंबाई को फिर से चालू किया जाता है, और पहली स्ट्रिंग के वर्णों को पूर्णांक में बदल दिया जाता है।
-
सूची में 'गलत' मानों के साथ संगत मान बदल दिया गया है।
-
फ़ंक्शन के बाहर, दो स्ट्रिंग्स परिभाषित हैं, और कंसोल पर प्रदर्शित होती हैं।
-
इन स्ट्रिंग्स को पैरामीटर के रूप में पास करके विधि को कॉल किया जाता है।
-
आउटपुट कंसोल पर प्रदर्शित होता है।