97. Interleaving String
Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2.
For example,
Given:
s1 = “aabcc”,
s2 = “dbbca”,
When s3 = “aadbbcbcac”, return true.
When s3 = “aadbbbaccc”, return false.
题意:
给定S1、S2、S3,确定是否由S1和S2交织形成S3。
思路:
动态规划的思想,分解成小问题,s3[0,i+j]的字符与s1[0,i],s2[0,j]匹配,s3[0,i+j+1]的状态取决于s3[i+j+1] 与 s1[i+1]或者s2[0,j+1]是否匹配
1 | 设dp[i][j],表示s1[0,i-1]和s2[0,j-1]交替组成s3[0, i+j-1]。//dp[i][j]就表示s1的前i个和s2的前j个是否和s3的前i+j个匹配 |
1 | class Solution { |