【題目描述】
Given three strings: s1, s2, s3, determine whether s3 is formed by the interleaving of s1 and s2.
給出三個字符串:s1、s2、s3,判斷s3是否由s1和s2交叉構成。
【題目鏈接】
http://www.lintcode.com/en/problem/interleaving-string/
【題目解析】
dp[i][j]表示s1前i個和s2前j個對s3前i+j個是否interleaving string。
首先初始化。遍歷s1,初始化所有的dp[i][0]
再遍歷s2,初始化所有的dp[0][j]
若s3的第i+j-1位和s1的第i位相等,則看dp[i-1][j]是否爲true;同理,若s3的i+j-1位和s2的第j位相等,則看dp[i][j-1]是否爲true。只要兩種情況中的任意一種爲true,則dp[i][j]爲true。
【參考答案】
http://www.jiuzhang.com/solutions/interleaving-string/