दो स्ट्रिंग्स को देखते हुए, हमारा काम सबसे लंबी कॉमन सब-स्ट्रिंग को प्रिंट करना है। हम SequenceMatcher.find_longest_match () विधि का उपयोग करके अजगर में समस्या का समाधान करेंगे।
Class difflib.SequenceMatcher किसी भी प्रकार के अनुक्रमों के जोड़े की तुलना करने के लिए एक लचीला वर्ग है, जब तक कि अनुक्रम तत्व हैशबल हैं।
find_longest_match(a, x, b, y)
a[a:x] और b[b:y] में सबसे लंबा मेल खाने वाला ब्लॉक ढूंढें।
उदाहरण
Input: str1 = "pythonprogramming", str2 = "pro" Output: pro
एल्गोरिदम
Step 1: Enter two string. Step 2: initialize SequenceMatcher object with the input string. Step 3: find the match of longest sub-string output. Step 4: print longest substring.
उदाहरण कोड
# Python program to find Longest Common Sub-string from difflib import SequenceMatcher def matchsubstring(m,n): seqMatch = SequenceMatcher(None,m,n) match = seqMatch.find_longest_match(0, len(m), 0, len(n)) if (match.size!=0): print ("Common Substring ::>",m[match.a: match.a + match.size]) else: print ('No longest common sub-string found') # Driver program if __name__ == "__main__": X = input("Enter first String ") Y = input("Enter second String ") matchsubstring(X,Y)
आउटपुट
Enter first String pythonprogramming Enter second String pro Common Substring ::> pro