DP #31. String Interleaving - mbhushan/dynpro GitHub Wiki
(31). String Interleaving.
Given three strings A, B and C. Write a function that checks whether C is an
interleaving of A and B. C is said to be interleaving A and B, if it contains
all characters of A and B and order of all characters in individual strings is
preserved.
A = "XXY"
B = "XXZ"
C = "XXXXZY"
output: True.
Formula:
if (B[i] == C[i+j]) {
T[i][j] = T[i][j-1]
} else if (A[j] == C[i+j]) {
T[i][j] = T[i-1][j]
} else {
T[i][j] = false;
}
|
|
|
|
|
|
0 |
X |
X |
Y |
0 |
T |
T |
T |
F |
X |
T |
T |
T |
F |
X |
T |
T |
T |
F |
Z |
F |
F |
T |
T(ans) |
String Interleaving
- Time Complexity: O(n * m)
- Space Complexity: O(n * m)