9.Interleaving String

https://leetcode.com/problems/interleaving-string/

class Solution {
public:
    bool isInterleave(string s1, string s2, string s3) {
        int l1 = s1.length();
        int l2 = s2.length();
        int l3 = s3.length();
        vector<vector<int>> f(l1 + 1, vector<int>(l2 + 1, 0));
        
        if (l3 != l1 + l2) {
            return false;
        }
        
        f[0][0] = l1 == 0 && l2 == 0 && l3 != 0 ? false : true;
        
        for (int i = 1; i <= l1; i++) {
            f[i][0] = f[i-1][0] && s1[i-1] == s3[i-1];    
        }
        
        for (int j = 1; j <= l2; j++) {
            f[0][j] = f[0][j-1] && s2[j-1] == s3[j-1];    
        }
        
        for (int i = 1; i <= l1; i++) {
            for (int j = 1; j <= l2; j++) {
                if (f[i-1][j] && s1[i-1] == s3[i+j-1]) {
                    f[i][j] = f[i-1][j];
                } 
                if (f[i][j-1] && s2[j-1] == s3[i+j-1]) {
                    f[i][j] = f[i][j-1];
                }
            }
        }
        
        return f[l1][l2];
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,642评论 2 45
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,793评论 0 33
  • 感恩忙碌的一天,想着今天孩子不上学多睡一会,谁知道六点多还是醒了,最近早起的生物钟已经有了,感恩一直坚持,这样...
    俩宝的妈咪阅读 171评论 0 1
  • 今天对我印象较深的一句话是“你总是很容易看到他人的缺点,是因为对自己的不自信”。 自己的优点有哪些?好像没有诶,不...
    山涧百合Y阅读 141评论 0 0
  • 爱读书爱写作的我 我是一名小学语文老师,在南师附小工作。每天都是和班上的孩子们在一起。和他们一起生活,和他们一起快...
    江山吴阅读 155评论 0 1