diff --git a/Level-2/23. Dynamic Programming/Longest Common Subsequence.cpp b/Level-2/23. Dynamic Programming/Longest Common Subsequence.cpp new file mode 100644 index 0000000..e515fec --- /dev/null +++ b/Level-2/23. Dynamic Programming/Longest Common Subsequence.cpp @@ -0,0 +1,17 @@ +#include +using namespace std; + +int longestCommonSubsequence(string &a, string &b) { + + vector> m(a.size() + 1, vector(b.size() + 1)); + for (auto i = 1; i <= a.size(); ++i) + for (auto j = 1; j <= b.size(); ++j) + if (a[i - 1] == b[j - 1]) { + m[i][j] = m[i - 1][j - 1] + 1; + } + + else{ + m[i][j] = max(m[i - 1][j], m[i][j - 1]); + } + return m[a.size()][b.size()]; +} \ No newline at end of file