diff --git a/dynamic_programming/longest common subsequence.py b/dynamic_programming/longest common subsequence.py new file mode 100644 index 000000000..f722c5d12 --- /dev/null +++ b/dynamic_programming/longest common subsequence.py @@ -0,0 +1,18 @@ +""" +LCS Problem Statement: Given two sequences, find the length of longest subsequence present in both of them. +A subsequence is a sequence that appears in the same relative order, but not necessarily continious. +Example:"abc", "abg" are subsequences of "abcdefgh". +""" +def LCS(s1, s2): + m = len(s1) + n = len(s2) + + arr = [[0 for i in range(n+1)]for j in range(m+1)] + + for i in range(1,m+1): + for j in range(1,n+1): + if s1[i-1] == s2[j-1]: + arr[i][j] = arr[i-1][j-1]+1 + else: + arr[i][j] = max(arr[i-1][j], arr[i][j-1]) + return arr[m][n]