Delete Operation for Two Strings LeetCode solution in C++

1
class Solution {
2
public:
3
int lcs(string X, string Y, int m, int n) {
4
int dp[m + 1][n + 1];
5
for (int i = 0; i < m + 1; i++) {
6
for (int j = 0; j < n + 1; j++) {
7
if (i == 0 || j == 0) dp[i][j] = 0;
8
}
9
}
10

11
for (int i = 1; i < m + 1; i++) {
12
for (int j = 1; j < n + 1; j++) {
13
if (X[i - 1] == Y[j - 1])
14
dp[i][j] = 1 + dp[i - 1][j - 1];
15
else
16
dp[i][j] = max(dp[i][j - 1], dp[i - 1][j]);
17
}
18
}
19
return dp[m][n];
20
}
21
int minDistance(string s1, string s2) {
22
int m = s1.size(), n = s2.size();
23
return m + n - 2 * lcs(s1, s2, m, n);
24
}
25
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0