给定三个字符串 s1 , s2 , s3 ,请你验证 s3 是否是 s1 和 s2 交错组成。 交错组成的定义是,把 s1 和 s2 分别拆分成子串 a1+a2+a3..+an , b1+b2+b3+..+bn , a1+b1+a2+b2+… 或 b1+a1+b2+a2+… 可以组成 s3 就定义为交错组成。 数据范围:字符串的长度满足

区块链毕设网qklbishe.com为您提供问题的解答

给定三个字符串 s1 , s2 , s3 ,请你验证 s3 是否是 s1 和 s2 交错组成。
交错组成的定义是,把 s1 和 s2 分别拆分成子串 a1+a2+a3..+an , b1+b2+b3+..+bn , a1+b1+a2+b2+… 或 b1+a1+b2+a2+… 可以组成 s3 就定义为交错组成。
数据范围:字符串的长度满足 给定三个字符串 s1 , s2 , s3 ,请你验证 s3 是否是 s1 和 s2 交错组成。    交错组成的定义是,把 s1 和 s2 分别拆分成子串 a1+a2+a3..+an , b1+b2+b3+..+bn , a1+b1+a2+b2+... 或 b1+a1+b2+a2+... 可以组成 s3 就定义为交错组成。          数据范围:字符串的长度满足

mportjava.util.*;

 
 
publicclassSolution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param s1 string字符串
     * @param s2 string字符串
     * @param s3 string字符串
     * @return bool布尔型
     */
    publicbooleanstringJudge(String s1, String s2, String s3) {
        // write code here
        intlen1 = s1.length();
        intlen2 = s2.length();
        intlen3 = s3.length();
        if(len1 + len2 != len3) {
            returnfalse;
        }
        boolean[][] dp =newboolean[len1 +1][len2 +1];
        for(inti = len1; i > -1; i–) {
            for(intj = len2; j > -1; j–) {
                if(i == len1 && j == len2) {
                    dp[i][j] =true;
                }elseif(i == len1) {
                    dp[i][j] = s2.substring(j).equals(s3.substring(i + j));
                }elseif(j == len2) {
                    dp[i][j] = s1.substring(i).equals(s3.substring(i + j));
                }else{
                    charchr1 = s1.charAt(i);
                    charchr2 = s2.charAt(j);
                    charchr3 = s3.charAt(i + j);
                    if(chr1 == chr2) {
                        if(chr1 == chr3) {
                            dp[i][j] = dp[i +1][j] || dp[i][j +1];
                        }
                    }else{
                        if(chr1 == chr3) {
                            dp[i][j] = dp[i +1][j];
                        }else{
                            dp[i][j] = dp[i][j +1];
                        }
                    }
                }
            }
        }
        returndp[0][0];
    }
}

48:20

以上就是关于问题给定三个字符串 s1 , s2 , s3 ,请你验证 s3 是否是 s1 和 s2 交错组成。 交错组成的定义是,把 s1 和 s2 分别拆分成子串 a1+a2+a3..+an , b1+b2+b3+..+bn , a1+b1+a2+b2+… 或 b1+a1+b2+a2+… 可以组成 s3 就定义为交错组成。
数据范围:字符串的长度满足的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

从业7年-专注一级市场


微信:btc9767
TELEGRAM :https://t.me/btcok9

具体资料介绍

web3的一级市场千万收益的逻辑


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 给定三个字符串 s1 , s2 , s3 ,请你验证 s3 是否是 s1 和 s2 交错组成。 交错组成的定义是,把 s1 和 s2 分别拆分成子串 a1+a2+a3..+an , b1+b2+b3+..+bn , a1+b1+a2+b2+… 或 b1+a1+b2+a2+… 可以组成 s3 就定义为交错组成。 数据范围:字符串的长度满足