Interleaving String
Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2.
(判断s1 与 s2 相互插入可否组成 s3)
Example:
字符串匹配 & 动态规划 死锁
1. 动态规划
dp[i][j]表示用 s1 的前 i 个字符和 s2 的前 j 个字符能不能按照规则表示出 s3 的前 i+j 个字符。
递推表达式为:
dp[i][j] = (dp[i][j-1] and s2[j-1] == s3[i + j -1]) or (dp[i-1][j] and s1[i-1] == s3[i + j -1])
其中需要注意维护边界,具体实现过程如下:
1 | class Solution: |