day-38 交错字符串


思路

动态规划,利用一个二维数组,dp[i][j]表示s3前i+j个字符能否用s1前i个字符和s2前j个字符交错形成

解题过程

转换方程:dp[i][j]=(dp[i-1][j]&&s3.charAt(i+j-1)==s1.charAt(i-1))||(dp[i][j-1]&&s3.charAt(i+j-1)==s2.charAt(j-1))

Code

java 复制代码
class Solution {
    public boolean isInterleave(String s1, String s2, String s3) {
        if(s1.length()+s2.length()!=s3.length())return false;
        int len1=s1.length();
        int len2=s2.length();
        int len3=s3.length();
        boolean ans[][]=new boolean[len1+1][len2+1];
        ans[0][0]=true;
        for(int i=0;i<=len1;i++){
            for(int j=0;j<=len2;j++){
                if(i>0)
                ans[i][j]=ans[i-1][j]&&s3.charAt(i+j-1)==s1.charAt(i-1);
                if(j>0)
                ans[i][j]=ans[i][j]||(ans[i][j-1]&&s3.charAt(i+j-1)==s2.charAt(j-1));
            }
        }
        return ans[len1][len2];
    }
}
相关推荐
小李独爱秋13 分钟前
模拟面试:什么是微服务架构,它的优缺点是什么?
算法·微服务·面试·职场和发展·框架·架构师
流云鹤16 分钟前
2026牛客寒假算法基础集训营3(A B G J H F C)
算法
御坂10101号18 分钟前
从暴力扫图到成本估算:SpiceDB 如何重构 ReBAC 性能引擎
算法·性能优化·架构·database
小程故事多_801 小时前
RAG,基于字号频率的内容切分算法,非常强
人工智能·算法·aigc
ADDDDDD_Trouvaille1 小时前
2026.2.15——OJ83-85题
c++·算法
烟花落o1 小时前
算法的时间复杂度和空间复杂度
开发语言·数据结构·笔记·算法
Ronaldinho Gaúch1 小时前
算法题中的日期问题
开发语言·c++·算法
Chary20162 小时前
Opencascade VTK 集成服务 VIS
算法
楠秋9202 小时前
代码随想录算法训练营第三十一天|56. 合并区间 、 738.单调递增的数字、968.监控二叉树
数据结构·算法·leetcode·贪心算法
MadPrinter3 小时前
Python 异步爬虫实战:FindQC 商品数据爬取系统完整教程
爬虫·python·算法·自动化