Related Articles

# SequenceMatcher in Python for Longest Common Substring

• Difficulty Level : Medium
• Last Updated : 11 Dec, 2017

Given two strings ‘X’ and ‘Y’, print the longest common sub-string.

Examples:

```Input :  X = "GeeksforGeeks",
Y = "GeeksQuiz"
Output : Geeks

Input : X = "zxabcdezy",
Y = "yzabcdezx"
Output : abcdez
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

We have existing solution for this problem please refer Print the longest common substring link. We will solve problem in python using SequenceMatcher.find_longest_match() method.

### How SequenceMatcher.find_longest_match(aLow,aHigh,bLow,bHigh) method works ?

First we initialize SequenceMatcher object with two input string str1 and str2, find_longest_match(aLow,aHigh,bLow,bHigh) takes 4 parameters aLow, bLow are start index of first and second string respectively and aHigh, bHigh are length of first and second string respectively. find_longest_match() returns named tuple (i, j, k) such that a[i:i+k] is equal to b[j:j+k], if no blocks match, this returns (aLow, bLow, 0).

 `# Function to find Longest Common Sub-string`` ` `from` `difflib ``import` `SequenceMatcher`` ` `def` `longestSubstring(str1,str2):`` ` `     ``# initialize SequenceMatcher object with ``     ``# input string``     ``seqMatch ``=` `SequenceMatcher(``None``,str1,str2)`` ` `     ``# find match of longest sub-string``     ``# output will be like Match(a=0, b=0, size=5)``     ``match ``=` `seqMatch.find_longest_match(``0``, ``len``(str1), ``0``, ``len``(str2))`` ` `     ``# print longest substring``     ``if` `(match.size!``=``0``):``          ``print` `(str1[match.a: match.a ``+` `match.size]) ``     ``else``:``          ``print` `(``'No longest common sub-string found'``)`` ` `# Driver program``if` `__name__ ``=``=` `"__main__"``:``    ``str1 ``=` `'GeeksforGeeks'``    ``str2 ``=` `'GeeksQuiz'``    ``longestSubstring(str1,str2)`

Output:

```Geeks
```

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up