day-38 交错字符串


思路

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

解题过程

转换方程:dpij=(dpi-1j&&s3.charAt(i+j-1)==s1.charAt(i-1))||(dpij-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];
    }
}
相关推荐
疯狂打码的少年40 分钟前
【数据结构】二叉排序树(BST)的定义与操作
数据结构·笔记·算法
lally.1 小时前
整数等差数列超图中的三个非微扰现象
算法
wabs6661 小时前
关于字符串【力扣541.反转字符串II的思考】
数据结构·算法·leetcode·字符串
土司大王1 小时前
LeetCode hot100——移动零
java·算法·leetcode
Tyler_TXZ2 小时前
C++C语言之——树
c语言·c++·算法·
旖旎夜光2 小时前
LeetCode 30:串联所有单词的子串(滑动窗口) —— 题解
数据结构·c++·算法·leetcode·滑动窗口
白狐_7983 小时前
408 数据结构|完全二叉树两道典型题:第 6 层叶结点数与叶结点总数
数据结构·算法
lucas_AI3 小时前
喂张白纸也能吐出证件号?文档 MLLM 的"关系级泄露"被测出来了
人工智能·算法·掘金技术征文
手写码匠3 小时前
华为云Flexus+DeepSeek征文|Dify 多 Agent 灰度发布实战:让每一次变更都“小步快跑、随时可回滚“
人工智能·深度学习·算法·aigc
阿部多瑞 ABU3 小时前
从0到1:用 Spring Boot 3.4 + Vue3 做一个能“智能排道次“的运动会编排系统(附核心算法)
java·spring boot·后端·算法·spring