当前位置: 首页 > news >正文

网站开发人员年薪店铺运营

网站开发人员年薪,店铺运营,郑州注册公司流程及费用,免费建站网站建设题目 输入3个字符串s1、s2和s3,请判断字符串s3能不能由字符串s1和s2交织而成,即字符串s3的所有字符都是字符串s1或s2中的字符,字符串s1和s2中的字符都将出现在字符串s3中且相对位置不变。例如,字符串"aadbbcbcac"可以由…

题目

输入3个字符串s1、s2和s3,请判断字符串s3能不能由字符串s1和s2交织而成,即字符串s3的所有字符都是字符串s1或s2中的字符,字符串s1和s2中的字符都将出现在字符串s3中且相对位置不变。例如,字符串"aadbbcbcac"可以由字符串"aabcc"和"dbbca"交织而成。
在这里插入图片描述

分析

每步从字符串s1或s2中选出一个字符交织生成字符串s3中的一个字符,那么交织生成字符串s3中的所有字符需要多个步骤。每步既可能从字符串s1中选择一个字符,也可能从字符串s2中选择一个字符,也就是说,每步可能面临两个选择。完成一件事情需要多个步骤,而且每步都可能面临多个选择,这个问题看起来可以用回溯法解决。
这个问题并没有要求列出所有将字符串s1和s2交织得到字符串s3的方法,而只是判断能否将字符串s1和s2交织得到字符串s3。如果能够将字符串s1和s2交织得到字符串s3,那么将字符串s1和s2交织得到字符串s3的方法的数目大于0。这只是判断问题的解是否存在(即判断解的数目是否大于0),因此这个问题更适合应用动态规划来解决。
可以用函数f(i,j)表示字符串s1的下标从0到i的子字符串(记为s1[0…i],长度为i+1)和字符串s2的下标从0到j的子字符串(记为s2[0…j],长度为j+1)能否交织得到字符串s3的下标从0到i+j+1(记为s3[0…i+j+1],长度为i+j+2)的子字符串。f(m-1,n-1)就是整个问题的解。
当s3[i+j+1]和s1[i]相同时,f(i,j)的值等于f(i-1,j)的值。类似地,当s3[i+j+1]和s2[j]相同时,f(i,j)的值等于f(i,j-1)的值。如果s1[i]和s2[j]都和s3[i+j+1]相同,此时只要f(i-1,j)和f(i,j-1)有一个值为true,那么f(i,j)的值为true。

public class Test {public static void main(String[] args) {boolean result = isInterleave("aabcc", "dbbca", "aadbbcbcac");System.out.println(result);}public static boolean isInterleave(String s1, String s2, String s3) {if (s1.length() + s2.length() != s3.length()) {return false;}boolean[][] dp = new boolean[s1.length() + 1][s2.length() + 1];dp[0][0] = true;// 列为0,没有取用s2字符串的数字for (int i = 0; i < s1.length(); i++) {dp[i + 1][0] = s1.charAt(i) == s3.charAt(i) && dp[i][0];}// 行为0,没有取用s1字符串的数字for (int j = 0; j < s2.length(); j++) {dp[0][j + 1] = s2.charAt(j) == s3.charAt(j) && dp[0][j];}for (int i = 0; i < s1.length(); i++) {for (int j = 0; j < s2.length(); j++) {char ch1 = s1.charAt(i);char ch2 = s2.charAt(j);char ch3 = s3.charAt(i + j + 1);// 注意是dp[i + 1][j + 1]dp[i + 1][j + 1] = (ch1 == ch3 && dp[i][j + 1]) || (ch2 == ch3 && dp[i + 1][j]);}}return dp[s1.length()][s2.length()];}
}
http://www.sczhlp.com/news/41541/

相关文章:

  • 关于做奶妈的视频网站淘宝关键词推广
  • 中山做百度网站的公司名称企业推广宣传文案
  • 重庆做网站怎么做百度官网认证免费
  • 宿州哪有做网站的网络推广的方法
  • logo标志设计网合肥seo排名收费
  • 家装类设计网站班级优化大师下载安装app
  • 做城市分类信息网站好做吗班级优化大师app
  • 投票活动网站怎么做互联网推广是干什么的
  • 做区块链的网站常德seo招聘
  • 网站建设入门 下载seo什么意思简单来说
  • 北京专业网站制作流程优势杭州网站推广与优化
  • 龙游网站建设的公司网络营销推广培训机构
  • 20g虚拟主机建设网站引流推广神器
  • Day6变量,常量,作用域
  • 14 让线程等待一段时间
  • 13 线程的状态
  • 15 从线程返回结果
  • 做外贸营销网站销售咋样百度推广登录地址
  • 做彩票的网站有哪些新产品市场推广方案
  • 网站上常用字体新闻头条今日要闻军事
  • 做餐饮系统网站免费推广网
  • 做网站后台系统的规范线上推广产品
  • asp网站做消息提醒功能指数函数求导公式
  • 网站的目的及功能规划淘宝权重查询入口
  • app制作网站有哪些站长工具域名查询
  • 西安建网站公司哪家好软文推广是什么
  • 定制型网站建设关键词排名代做
  • 长沙响应式网站建设搜索引擎推广的三种方式
  • 网站规划书市场分析google adwords关键词工具
  • 做网站一般用什么字体绍兴百度seo