55561bc4创建于 2022年12月27日历史提交
public class Solution
{
    //T:O(M*N)
    public bool IsInterleave(string s1, string s2, string s3)
    {
        if (s1.Length + s2.Length != s3.Length)
            return false;

        var dp = new bool[s1.Length + 1, s2.Length + 1];
        dp[s1.Length, s2.Length] = true;

        for (var i = s1.Length; i >= 0; i--)
        {
            for (var j = s2.Length; j >= 0; j--)
            {
                if (i < s1.Length && s1[i] == s3[i + j] && dp[i + 1, j])
                {
                    dp[i, j] = true;
                }
                if (j < s2.Length && s2[j] == s3[i + j] && dp[i, j + 1])
                {
                    dp[i, j] = true;
                }
            }

        }

        return dp[0, 0];
    }

}