Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 0dc0e41

Browse files
longestCommonSubstring.cpp created (#128)
2 parents 164c560 + d8254c6 commit 0dc0e41

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
// Problem : A substring of a string is a subsequence in which all the characters are consecutive.Given two strings,
2+
// we need to find the longest common substring.
3+
4+
// Approach :
5+
6+
// We are creating a 2d dp array corresponding to the dimensions of the array. Now if the characters for a pair of
7+
// i, j are not equal, that show that they can be included in the final answer and hence they are discarded.
8+
// Else, we take a look at dp[i-1][j-1] if the continuity is maintained the we can find a continous equal substring
9+
// or not.
10+
11+
#include <bits/stdc++.h>
12+
using namespace std;
13+
14+
int lcs(string &s1, string &s2)
15+
{
16+
int n = s1.size();
17+
int m = s2.size();
18+
vector<vector<int>> dp(n + 1, vector<int>(m + 1, 0));
19+
int ans = 0;
20+
for (int i = 1; i <= n; i++)
21+
{
22+
for (int j = 1; j <= m; j++)
23+
{
24+
if (s1[i - 1] == s2[j - 1])
25+
{
26+
// looking if just previous characters are also equal or not
27+
int val = 1 + dp[i - 1][j - 1];
28+
dp[i][j] = val;
29+
ans = max(ans, val);
30+
}
31+
else
32+
{
33+
// not a part of equal substring, hence 0
34+
dp[i][j] = 0;
35+
}
36+
}
37+
}
38+
return ans;
39+
}
40+
41+
int main()
42+
{
43+
string s1;
44+
string s2;
45+
cin >> s1 >> s2;
46+
cout << "The Length of Longest Common Substring is " << lcs(s1, s2);
47+
}
48+
49+
// Sample Inputs
50+
51+
// abcjklp
52+
// acjkp
53+
54+
// Corresponding Outputs
55+
56+
// 3

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /