| 1 | Initialize DP table | - | - | All zeros in first row and column | [0 0 0 0 0 0 0]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .] |
| 2 | Compare s1[1]='A' and s2[1]='B' | (1,1) | 'A' vs 'B' | No match, dp[1,1] = max(dp[0,1], dp[1,0]) = 0 | [0 0 0 0 0 0 0]
[0 0 . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .] |
| 3 | Compare s1[1]='A' and s2[2]='D' | (1,2) | 'A' vs 'D' | No match, dp[1,2] = max(dp[0,2], dp[1,1]) = 0 | [0 0 0 0 0 0 0]
[0 0 0 . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .] |
| 4 | Compare s1[1]='A' and s2[3]='C' | (1,3) | 'A' vs 'C' | No match, dp[1,3] = max(dp[0,3], dp[1,2]) = 0 | [0 0 0 0 0 0 0]
[0 0 0 0 . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .] |
| 5 | Compare s1[1]='A' and s2[4]='A' | (1,4) | 'A' vs 'A' | Match, dp[1,4] = dp[0,3] + 1 = 1 | [0 0 0 0 0 0 0]
[0 0 0 0 1 . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .] |
| 6 | Compare s1[1]='A' and s2[5]='B' | (1,5) | 'A' vs 'B' | No match, dp[1,5] = max(dp[0,5], dp[1,4]) = 1 | [0 0 0 0 0 0 0]
[0 0 0 0 1 1 .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .] |
| 7 | Compare s1[1]='A' and s2[6]='A' | (1,6) | 'A' vs 'A' | Match, dp[1,6] = dp[0,5] + 1 = 1 | [0 0 0 0 0 0 0]
[0 0 0 0 1 1 1]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .]
[0 . . . . . .] |
| 8 | Continue filling dp table for all i=2..7 and j=1..6 | (2..7,1..6) | Compare characters and update dp accordingly | Fill dp with max subsequence lengths | Final dp table:
[0 0 0 0 0 0 0]
[0 0 0 0 1 1 1]
[0 1 1 1 1 2 2]
[0 1 1 2 2 2 2]
[0 1 1 2 2 3 3]
[0 1 2 2 2 3 3]
[0 1 2 2 3 3 4]
[0 1 2 2 3 4 4] |
| 9 | Backtrack from dp[7,6] | (7,6) | Trace back to find LCS characters | LCS length = 4, sequence = 'BDAB' | Backtracking path:
(7,5) 'B' match
(6,4) 'A' match
(5,2) 'D' match
(4,1) 'B' match |
| 10 | End | - | - | - | LCS length: 4
LCS sequence: BDAB |