Question
Consider the following Python code for calculating the
length of the LCS: def lcs_length(text1, text2): Â Â m = len(text1) Â Â n = len(text2) Â Â dp = [[0] * (n + 1) for _ in range(m + 1)] Â Â for i in range(1, m + 1): Â Â Â Â for j in range(1, n + 1): Â Â Â Â Â Â if text1[i - 1] == text2[j - 1]: Â Â Â Â Â Â Â Â dp[i][j] = 1 + dp[i - 1][j - 1] Â Â Â Â Â Â else: Â Â Â Â Â Â Â Â dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) Â Â return dp[m][n] # Assume text1 = "AGGTAB" and text2 = "GXTXAYB" # And the dp table has been partially filled as follows (only relevant cells shown): #Â Â Â Â ""Â GÂ Â XÂ Â TÂ Â XÂ Â AÂ Â YÂ Â B # ""Â Â 0Â Â 0Â Â 0Â Â 0Â Â 0Â Â 0Â Â 0Â Â 0 # AÂ Â Â 0Â Â 0Â Â 0Â Â 0Â Â 0Â Â 1Â Â 1Â Â 1 # GÂ Â Â 0Â Â 1Â Â 1Â Â 1Â Â 1Â Â 1Â Â 1Â Â 1 # GÂ Â Â 0Â Â 1Â Â 1Â Â 1Â Â 1Â Â 1Â Â 1Â Â 1 # TÂ Â Â 0Â Â 1Â Â 1Â Â 2Â Â 2Â Â 2Â Â 2Â Â 2 # AÂ Â Â 0Â Â 1Â Â 1Â Â 2Â Â 2Â Â 3Â Â 3Â Â 3 # BÂ Â Â 0Â Â 1Â Â 1Â Â 2Â Â 2Â Â 3Â Â 3Â Â 4ÂSolution
Detailed Answer and Dry Run: We are calculating dp[4][4] for text1 = "AGGTAB" and text2 = "GXTXAYB". This corresponds to finding the LCS of text1[0...3] ("AGGT") and text2[0...3] ("GXTX"). Let's trace the execution for dp[4][4] using the provided Python code snippet and the partially filled table. The i loop is at i = 4 (for text1[3], which is 'T'). The j loop is at j = 4 (for text2[3], which is 'X'). 1. Character Comparison:   text1[i - 1] is text1[3] which is 'T'.   text2[j - 1] is text2[3] which is 'X'.   Since 'T' != 'X', the else block will be executed. 2. Applying the Recurrence Relation (Mismatch Case):   dp[i][j] = max(dp[i - 1][j], dp[i][j - 1])   dp[4][4] = max(dp[3][4], dp[4][3])   We need the values of dp[3][4] and dp[4][3]. Let's look at the provided partial table:   dp[3][4] (LCS of "AGG" and "GXTX") is 1. (From the table: G matches G, so dp[3][4] is 1 from dp[2][3] which is 1 for "AG" and "GXT" - this is a simplification, the full table fill would show dp[3][4] as 1 because 'G' is common).   dp[4][3] (LCS of "AGGT" and "GXT") is 2. (From the table: "GT" is common, so dp[4][3] is 2).   Let's re-evaluate dp[3][4] and dp[4][3] based on the recurrence relation for clarity, assuming they were just computed:   For dp[3][4] (LCS of "AGG" and "GXTX"):     text1[2] is 'G', text2[3] is 'X'. They don't match.     dp[3][4] = max(dp[2][4], dp[3][3])     dp[2][4] (LCS of "AG" and "GXTX") is 1 (common 'G').     dp[3][3] (LCS of "AGG" and "GXT") is 1 (common 'G').     So, dp[3][4] = max(1, 1) = 1.   For dp[4][3] (LCS of "AGGT" and "GXT"):     text1[3] is 'T', text2[2] is 'T'. They match!     dp[4][3] = 1 + dp[3][2]     dp[3][2] (LCS of "AGG" and "GX") is 1 (common 'G').     So, dp[4][3] = 1 + 1 = 2.   Now, back to dp[4][4]:   dp[4][4] = max(dp[3][4], dp[4][3])   dp[4][4] = max(1, 2)   dp[4][4] = 2 Therefore, the value of dp[4][4] will be 2. The common subsequences for "AGGT" and "GXTX" are "GX" or "GT", both of length 2.
6Â Â Â Â Â Â Â Â Â Â Â Â Â 7Â Â Â Â Â Â Â Â Â Â Â Â Â 15Â Â Â Â Â Â Â Â Â Â 46Â Â Â Â Â Â Â Â Â Â 185Â Â Â Â Â Â Â Â ?
...1, 27, ?, 343, 729, 1331
3 12 48 192 768 ?
Find the odd one out: 11, 13, 17, 19, 21
6   55   91   116   132    ?  . Â
24Â Â Â 72Â Â Â Â 180Â Â Â Â 360Â Â Â Â Â 540Â Â Â ?
96Â Â Â 111Â Â Â 131Â Â Â ? Â Â Â Â Â 186Â Â Â Â 221
Three series are given below. You have to find the values of P, Q and R, then establish a relationship among them.
I:Â Â Â 210, P , 233, 64,...
13 24 75 134 447 892
...Complete the series.
19, 23, 26, 30, 33, ?