जब यह जांचने की आवश्यकता होती है कि क्या दो तार प्रकृति में समरूप हैं, तो एक विधि परिभाषित की जाती है जो दो तारों को पैरामीटर के रूप में लेती है। यह स्ट्रिंग की लंबाई के माध्यम से पुनरावृति करता है, और एक वर्ण को 'ऑर्ड' विधि का उपयोग करके एक पूर्णांक में परिवर्तित करता है।
उदाहरण
नीचे उसी का एक प्रदर्शन है
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' मान होते हैं।
-
दूसरी स्ट्रिंग की लंबाई को फिर से चालू किया जाता है, और पहली स्ट्रिंग के वर्णों को पूर्णांक में बदल दिया जाता है।
-
सूची में 'गलत' मानों के साथ संगत मान बदल दिया गया है।
-
फ़ंक्शन के बाहर, दो स्ट्रिंग्स परिभाषित हैं, और कंसोल पर प्रदर्शित होती हैं।
-
इन स्ट्रिंग्स को पैरामीटर के रूप में पास करके विधि को कॉल किया जाता है।
-
आउटपुट कंसोल पर प्रदर्शित होता है।