0% found this document useful (0 votes)
12 views

Longest Common Subsequence 19

Uploaded by

70137317
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views

Longest Common Subsequence 19

Uploaded by

70137317
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 17

DYNAMIC PROGRAMING

LONGEST COMMON
SUBSEQUENCE
LONGEST COMMON SUBSEQUENCE
 Given two strings, S1 and S2, the task is to
find the length of the Longest Common
Subsequence, i.e. longest subsequence
present in both of the strings
 A longest common subsequence (LCS) is

defined as the longest subsequence which is


common in all given input sequences
CONT…
 Input: S1 = “AGGTAB”, S2 = “GXTXAYB”
Output: 4
The longest subsequence which is present in
both strings is “GTAB”.
 Input: S1 = “BD”, S2 = “ABCD”

Output: 2
The longest subsequence which is present in
both strings is “BD”.
RECURSIVE EQUATION
LCS ALGORITHM
 Consider two strings:
 X= a b a a b a

 Y= b a b b a b

^ b a b b a b
^ 0 0 0 0 0 0 0
a 0
b 0
a 0
a 0
b 0
a 0
EXAMPLE
For index i=1, j=1
CONT…
For index i=1, j=2
CONT…
For index i=1, j=3
CONT…
For index i=1, j=4
CONT…
 For index i=1, j=5
CONT…
 For index i=1, j=6
CONT…
 For index i=2, j=1
CONT…
In this way we find the complete table
The final table would be

LCS=4
In the above table, we can observe that all the entries are
filled. Now we are at the last cell having 4 value. This cell
moves at the left which contains 4 value.; therefore, the
first character of the LCS is 'a'
CONT…
 The left cell moves upwards diagonally
whose value is 3; therefore, the next
character is 'b' and it becomes 'ba'. Now the
cell has 2 value that moves on the left. The
next cell also has 2 value which is moving
upwards; therefore, the next character is 'a'
and it becomes 'aba'.
 The next cell is having a value 1 that moves

upwards. Now we reach the cell (b, b) having


value which is moving diagonally upwards;
therefore, the next character is 'b'. The final
string of longest common subsequence is
'baba'.
TIME COMPLEXITY
o We have two nested loops
-The outer one iterate n times
-The inner one iterate m times
-Thus, total running time complexty is O(m * n)

 Auxiliary Space: O(m) because the


algorithm uses two arrays of size m.
APPLICATION

You might also like