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

网站开发的意义和作用郑州市建设信息网站

网站开发的意义和作用,郑州市建设信息网站,网页制作软件dw论文,网站建设服务费标准算法#xff1a; 有很多分割结果#xff0c;按照for循环去做肯定做不来 这个时候就要想到回溯#xff01;那就要画树#xff01; 画树 分割的画树过程其实和组合很像。 例如对于字符串aab#xff1a; 组合问题#xff1a;选取一个a之后#xff0c;在ab中再去选取第… 算法 有很多分割结果按照for循环去做肯定做不来 这个时候就要想到回溯那就要画树 画树 分割的画树过程其实和组合很像。 例如对于字符串aab 组合问题选取一个a之后在ab中再去选取第二个选取a之后b中再选取第三个.....。切割问题切割一个a之后在ab中再去切割第二段切割a之后在b再切割第三段.....。 回溯三部曲 1.确定返回值和参数 返回值void 参数 string s 题目自带的 int startindex 确定每次递归从哪个字符开始切割 2.确定终止条件 切割到字符串最后就是终止 startindex就是切割线 startindex s.length() 并且要收集结果 3.单层递归逻辑 子串怎么表示的 答[startindex, i] i是这样定义的 for (int i startIndex; i s.length(); i) 收集结果 若子串是回文要定义一个新的函数判断子串是否为回文 将子串add入path收集 若不是回文continue跳出该递归 递归 注意切割过的位置不能重复切割所以backtracking(s, i 1); 传入下一层的起始位置为i 1 backtracking (s, i1) 回溯 弹出本次已经添加的子串 path.removeLast() 判断回文子串 最后我们看一下回文子串要如何判断了判断一个字符串是否是回文。 可以使用双指针法一个指针从前向后一个指针从后向前如果前后指针所指向的元素是相等的就是回文字符串了。 调试过程 第一次调试 class Solution {//全局变量path和resultListListString result new LinkedList();ListString path new LinkedList();public ListListString partition(String s) {backtracking (s, 0);return result;}void backtracking (String s, int startindex){//终止条件收集结果if (startindex s.length()){result.add(new LinkedList (path));return;}//单层递归逻辑//判断子串是否为回文if (isplalindrome (s, startindex, i)){//若是加入pathpath.add (s[startindex, i]);}else {continue;}//递归backtracking (s, i1);//回溯path.removeLast();}//判断回文plalindrome,左闭右闭boolean isplalindrome (String s, int start, int end){//双指针法for (int i, int j; i s.length(), j i; i, j--){if (s[i] s[j]) return true;return false;}} } 原因 1.path.add (s[startindex, i]); 这一行存在语法错误。想要将子串添加到 path 列表中。为了修正这个问题应该使用 substring 方法而不是方括号。修正后的代码应该是path.add(s.substring(startIndex, i 1)); 在Java中方括号主要用于数组的索引访问而不用于提取子串方括号是适用于python的java不能用。 对于字符串提取子串可以使用substring方法该方法接受起始索引和结束索引作为参数以提取指定范围内的子串。[左闭右开 String str Hello, World!; String sub str.substring(startIndex, endIndex); 在这里str是要提取子串的字符串startIndex是子串的起始索引endIndex是子串的结束索引不包括在内。提取的子串将包括从startIndex到endIndex-1的字符。 因此在您的代码中path.add(s.substring(startIndex, i 1));将会提取s字符串中从startIndex到i包括i的子串并将其添加到path列表中。 2.isPalindrome 方法中的for循环存在几个语法错误。看起来您想要在for循环中声明和初始化多个变量但是语法是不正确的。让我们进行以下更正 for (int i start, j end; i j; i, j--) { // ... (代码的其余部分) } 在 Java 中当在 for 循环中声明多个变量时不需要在每个变量前都加上 int。 在 for 循环的初始化部分只需要在第一个变量声明前加上类型而后续的变量声明则只需要写变量名和初始值即可。 修改后 原因单层递归时忘记加for循环了 第二次调试 原因 string不能用方括号 应改为 s.charAt(i) s.charAt(j) 第三次调试 原因把字符串本身也输出了。 主要问题在判断回文的逻辑上 判断是否为xxx一定要先判错有错即错 当发现不是回文就要立刻false有不对的就不往下遍历了。一旦我们找到了一个不同的字符对我们就可以确定这个字符串不是回文因此可以立即返回 false。这样可以提前结束检查因为一旦发现不匹配就不需要继续向后检查。 我原来判断的是先判断前后是否相等若相等则true。 假设字符串是 “abca”。如果我们在检查第一个和最后一个字符相等时就提前返回 true那么我们会错误地认为 “abca” 是一个回文字符串因为我们没有检查中间的字符。而且当我们找到不同的字符时就无法及时结束检查而需要继续检查下去这会降低算法的效率。 正确代码 class Solution {//全局变量path和resultListListString result new LinkedList();ListString path new LinkedList();public ListListString partition(String s) {backtracking (s, 0);return result;}void backtracking (String s, int startindex){//终止条件收集结果if (startindex s.length()){result.add(new LinkedList (path));return;}//单层递归逻辑//判断子串是否为回文for (int istartindex; is.length();i){ if (isplalindrome (s, startindex, i)){//若是加入pathpath.add(s.substring(startindex, i1));}else {continue;}//递归backtracking (s, i1);//回溯path.removeLast();}}//判断回文plalindrome,左闭右闭boolean isplalindrome (String s, int start, int end){//双指针法for (int istart, jend; j i; i, j--){if (s.charAt(i) ! s.charAt(j)) return false; }return true;} } 时间空间复杂度
http://www.dnsts.com.cn/news/40133.html

相关文章:

  • 局域网网站怎样做数据库品牌建设和品牌打造
  • 做视频网站需要多大的带宽外包做网站价格
  • 冬青街 做网站网站开发的功能需求文档
  • 网站的icp备案信息是什么手机网站免费制作平台
  • 通辽建设公司网站江浦企业管理咨询服务有限公司
  • 网站的欢迎页怎么做宁阳移动网站制作
  • 网站建设定义做网站用小公司还是大公司好
  • 深圳网站seo优化公司手机网站关键词快速排名
  • 做网站困难嘛做视频网站盈利多少
  • 建设电子商务平台网站西安网约车驾驶员资格证网上报名
  • 请人做网站要注意什么托福培训一对一
  • 东营网站制作如何让本机做网站让内网访问
  • 怎么建立一个网站里面可以查询资料搜索引擎优化与推广技术
  • 什么网站系统做的最好的沈阳建设学院
  • 建设企业网站源码如何写营销策划方案
  • 网页设计网站的主题网络seo优化推广
  • 网站加速器手机版河南建设网站信息查询中心
  • 网站建设深圳哪家好jsp网站开发的环境配置
  • 青浦郑州阳网站建设博客网站建设设计报告
  • 电脑网页打不开建设银行网站全球知名购物网站有哪些
  • 网站logo模板美食网站策划书
  • 网站建设前台和后台特卖网站怎么做
  • 旅游网站建设风险哪个网站可以免费看小说不收费
  • 无锡网站建设wksttwordpress文章页广告插件
  • 网站连锁店查询怎么做建一个网站做cpa联盟
  • 做网站什么行业前景好娱乐网站设计与实现
  • 章丘建网站哪个公司的手机网络最好
  • WordPress建站去掉后缀需要做网站建设的公司
  • 杭州赛虎网站建设书画院网站源码
  • 网站开发地图板块浮动电商网站开发平台用什么人开发