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];
    }
}
相关推荐
Lisonseekpan20 小时前
雪花算法(Snowflake)技术详解与实战应用
java·分布式·后端·算法
软件算法开发21 小时前
基于秃鹰搜索优化的LSTM深度学习网络模型(BES-LSTM)的一维时间序列预测算法matlab仿真
深度学习·算法·matlab·lstm·时间序列预测·秃鹰搜索优化·bes-lstm
2401_8772742421 小时前
太原理工大学2025数据结构-栈和队列
数据结构·c++·算法
资深web全栈开发21 小时前
LeetCode 1262. 可被三整除的最大和 - 解题思路与代码
算法·leetcode·职场和发展
保持低旋律节奏1 天前
算法——冗余!哈希表、vector、string适配器的混合使用
数据结构·算法·散列表
weixin_457760001 天前
OpenCV 图像处理基础算法详解(一)
图像处理·opencv·算法
做怪小疯子1 天前
LeetCode 热题 100——链表——相交链表
算法·leetcode·链表
立志成为大牛的小牛1 天前
数据结构——五十一、散列表的基本概念(王道408)
开发语言·数据结构·学习·程序人生·算法·散列表
Coovally AI模型快速验证1 天前
去噪扩散模型,根本不去噪?何恺明新论文回归「去噪」本质
人工智能·深度学习·算法·机器学习·计算机视觉·数据挖掘·回归
歌_顿1 天前
attention、transform、bert 复习总结 1
人工智能·算法