Delete Operation for Two Strings LeetCode solution in C++
1class Solution {2public:3int lcs(string X, string Y, int m, int n) {4int dp[m + 1][n + 1];5for (int i = 0; i < m + 1; i++) {6for (int j = 0; j < n + 1; j++) {7if (i == 0 || j == 0) dp[i][j] = 0;8}9}1011for (int i = 1; i < m + 1; i++) {12for (int j = 1; j < n + 1; j++) {13if (X[i - 1] == Y[j - 1])14dp[i][j] = 1 + dp[i - 1][j - 1];15else16dp[i][j] = max(dp[i][j - 1], dp[i - 1][j]);17}18}19return dp[m][n];20}21int minDistance(string s1, string s2) {22int m = s1.size(), n = s2.size();23return m + n - 2 * lcs(s1, s2, m, n);24}25};