Computer >> Máy Tính >  >> Lập trình >> Python

SequenceMatcher bằng Python cho chuỗi con chung dài nhất.

Cho hai chuỗi, nhiệm vụ của chúng ta là in ra chuỗi con chung dài nhất. Chúng tôi sẽ giải quyết vấn đề trong python bằng phương thức SequenceMatcher.find_longest_match ().

Lớp difflib.SequenceMatcher là một lớp linh hoạt để so sánh các cặp trình tự thuộc bất kỳ kiểu nào, miễn là có thể băm các phần tử của trình tự.

find_longest_match (a, x, b, y)

Tìm khối phù hợp dài nhất trong a [a:x] và b [b:y].

Ví dụ

Input:  str1 = "pythonprogramming", 
        str2 = "pro"
Output: pro

Thuật toán

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.

Mã mẫu

# 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) 

Đầu ra

Enter first String pythonprogramming
Enter second String pro
Common Substring ::> pro