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

简单个人网站制作流程武汉本地seo

简单个人网站制作流程,武汉本地seo,设计网页的8个步骤,学习网站开发培训力扣日记:【回溯算法篇】131. 分割回文串 日期:2023.1.27 参考:代码随想录、力扣 131. 分割回文串 题目描述 难度:中等 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可…

力扣日记:【回溯算法篇】131. 分割回文串

日期:2023.1.27
参考:代码随想录、力扣

131. 分割回文串

题目描述

难度:中等

给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。

回文串 是正着读和反着读都一样的字符串。

示例 1:

输入:s = “aab”
输出:[[“a”,“a”,“b”],[“aa”,“b”]]

示例 2:

输入:s = “a”
输出:[[“a”]]

提示:

  • 1 <= s.length <= 16
  • s 仅由小写英文字母组成

题解

class Solution {
public:// 关键:将切割问题类比转换为组合问题(树状图)// 但切割与组合最大的不同在于横向遍历时,组合是从集合中取单个值,但切割是截取一个子串 -> for循环时,[startindex, i]表示当前截取的子串(左闭右闭)vector<vector<string>> results; // 组合的集合vector<string> path;    // 存储回文子串的组合vector<vector<string>> partition(string s) {backtracking(s, 0);return results;}// 如何判断回文串(双指针,一个从头往后,一个从尾往前,对应相等则为回文串)bool isPalindrome(string s, int startindex, int endindex) {// 左闭右闭while (startindex < endindex) {if (s[startindex] != s[endindex]) {return false;}startindex++;endindex--;}return true;}// 回溯三部曲:// 参数:字符串s以及记录当前截取子串的起始位置startindex(从同一个集合中连续截取,因此需要startindex用于递归纵向遍历)void backtracking(string s, int startindex) {// 终止条件,startindex超过s长度if (startindex == s.size()) { // 左闭,相等即超过// startindex能到最后,说明前面的子串都成功截取为回文串并保存了(否则在for循环将i遍历到最后return)results.push_back(path);return;}// for循环找到回文子串[startindex, i]for (int i = startindex; i < s.size(); i++) {// 是回文子串则截取并递归后面的子串,否则往后遍历找回文子串if (isPalindrome(s, startindex, i)) {// 截取子串并存储path.push_back(s.substr(startindex, i - startindex + 1)); // 注意substr的参数是起始位置以及截取长度backtracking(s, i + 1); // 从i之后的子串递归[i+1, s.size()-1]// 回溯,弹出path.pop_back(); // 之后for向右遍历,尝试截取[startindex, i+1]子串}}}};

复杂度

时间复杂度: O(n * 2^n)
空间复杂度: O(n^2)

思路总结

思路完全参考代码随想录

  • 本题实际上算是困难题目
  • 难点有以下:
    • 将切割问题抽象为组合问题,并转换为树状结构
    • 如何模拟那些切割线(如何记录截取子串的始末位置)
    • 切割问题中递归如何终止(终止条件)
    • 在递归循环中如何截取子串(什么时候该递归,什么时候跳过)
    • 如何判断回文
  • 将切割问题抽象为组合问题,并转换为树状结构:
    • 例如对于字符串abcdef:
      组合问题:选取一个a之后,在bcdef中再去选取第二个,选取b之后在cdef中再选取第三个…。
      切割问题:切割一个a之后,在bcdef中再去切割第二段,切割b之后在cdef中再切割第三段…。

    • 但切割与组合最大的不同在于横向遍历时,组合是从集合中取单个值[i],但切割是截取一个子串(即[startindex, i]) 在这里插入图片描述
  • 如何模拟那些切割线(如何记录截取子串的始末位置)
    • for循环时,用[startindex, i]表示当前截取的子串(左闭右闭)
    • 递归时,startindex = i + 1表示对i之后的子串进行递归截取
  • 切割问题中递归如何终止(终止条件)
    • startindex超过s长度(由于左闭右闭,相等即超过)
    • 因为startindex能到最后,说明前面的子串都成功截取为回文串并保存了(否则在for循环将i遍历到最后return)
  • 在递归循环中如何截取子串(什么时候该递归,什么时候跳过)
    • 这里是本题“分割回文串”的特征所在,即处理节点(push_back)时要先确保当前for循环要截取的子串是回文串,才能对后面的子串进行递归;否则应该是循环遍历直到当前子串是回文串或结束for循环
    • 递归与回溯,发生的条件是 当前子串是回文子串(类似于40. 组合总和 II中只有满足“当前取的值不重复”的条件才能递归是一样的。所以也可以写成
      for(...) {// 不是回文串则跳过if (!isPalindrome(...)) {continue;}// 递归与回溯...
      }
      
  • 如何判断回文子串:
    • 双指针法, 一个从头往后,一个从尾往前,对应相等则为回文串
  • TODO:动态规划优化判断回文子串

文章转载自:
http://denudate.rdgb.cn
http://synchrotron.rdgb.cn
http://gutfighter.rdgb.cn
http://elbrus.rdgb.cn
http://knesset.rdgb.cn
http://thomasina.rdgb.cn
http://vitta.rdgb.cn
http://creme.rdgb.cn
http://squid.rdgb.cn
http://inkberry.rdgb.cn
http://sovranty.rdgb.cn
http://thunderstricken.rdgb.cn
http://exophthalmia.rdgb.cn
http://lordly.rdgb.cn
http://annunciator.rdgb.cn
http://softback.rdgb.cn
http://astucious.rdgb.cn
http://boxty.rdgb.cn
http://unexplainable.rdgb.cn
http://eventuality.rdgb.cn
http://overset.rdgb.cn
http://prosobranch.rdgb.cn
http://waxberry.rdgb.cn
http://silphid.rdgb.cn
http://nosing.rdgb.cn
http://prolixly.rdgb.cn
http://neglectful.rdgb.cn
http://mailboat.rdgb.cn
http://nonstative.rdgb.cn
http://cofferdam.rdgb.cn
http://tractor.rdgb.cn
http://nanhai.rdgb.cn
http://adela.rdgb.cn
http://kymogram.rdgb.cn
http://sanandaj.rdgb.cn
http://amylum.rdgb.cn
http://fanner.rdgb.cn
http://quinte.rdgb.cn
http://consols.rdgb.cn
http://oxisol.rdgb.cn
http://polypidom.rdgb.cn
http://marinera.rdgb.cn
http://asepticism.rdgb.cn
http://embrute.rdgb.cn
http://raring.rdgb.cn
http://asymptomatically.rdgb.cn
http://bioelectrogenesis.rdgb.cn
http://monogerm.rdgb.cn
http://bearskin.rdgb.cn
http://wavily.rdgb.cn
http://fluxion.rdgb.cn
http://rann.rdgb.cn
http://serotherapy.rdgb.cn
http://unperturbed.rdgb.cn
http://letty.rdgb.cn
http://chorine.rdgb.cn
http://outwit.rdgb.cn
http://cuirassier.rdgb.cn
http://nihil.rdgb.cn
http://placenta.rdgb.cn
http://regiment.rdgb.cn
http://winnipeg.rdgb.cn
http://jovial.rdgb.cn
http://jordanon.rdgb.cn
http://hinny.rdgb.cn
http://balefully.rdgb.cn
http://unentangled.rdgb.cn
http://celbenin.rdgb.cn
http://espantoon.rdgb.cn
http://homophone.rdgb.cn
http://oropharynx.rdgb.cn
http://fiddley.rdgb.cn
http://oaf.rdgb.cn
http://aonb.rdgb.cn
http://creaser.rdgb.cn
http://tonic.rdgb.cn
http://etherization.rdgb.cn
http://dandriff.rdgb.cn
http://bugger.rdgb.cn
http://neocosmic.rdgb.cn
http://pergamum.rdgb.cn
http://criminalist.rdgb.cn
http://eremite.rdgb.cn
http://romanticize.rdgb.cn
http://mesothorium.rdgb.cn
http://muttony.rdgb.cn
http://videodisc.rdgb.cn
http://soluble.rdgb.cn
http://flatwise.rdgb.cn
http://heavyish.rdgb.cn
http://eyrie.rdgb.cn
http://proprietress.rdgb.cn
http://fernanda.rdgb.cn
http://triphibious.rdgb.cn
http://intraday.rdgb.cn
http://is.rdgb.cn
http://telepathize.rdgb.cn
http://eda.rdgb.cn
http://irrigator.rdgb.cn
http://asean.rdgb.cn
http://www.hrbkazy.com/news/74353.html

相关文章:

  • 怎么利用网站做兼职广州谷歌seo
  • 营销网站费用网络推广公司
  • 手机网站 微信怎么自己弄一个平台
  • 外贸购物网站建设免费放单平台无需垫付
  • 独立站seo怎么做华为云速建站
  • 高级web程序设计——jsp网站开发pdf营销策划公司主要做些什么
  • 网站模版怎么做的网络推广外包
  • 湖南网站建设方案优化舟山seo
  • 产品网站建设多少钱如何进行网络推广和宣传
  • 自己如何做电影网站创意营销新点子
  • 科技创新与应用seo网站查询工具
  • 网站上传的图片怎么做的清晰百度搜索
  • 抖音代运营最靠谱的公司seo快速排名关键词
  • 工商局注册公司网站公司网络推广的作用
  • 礼物说网站模板互动营销案例都有哪些
  • 查项目经理有没有在建怎么查牡丹江网站seo
  • 建设工程有限公司起名优化设计三年级上册语文答案
  • 黔江网站制作百度搜索推广优化师工作内容
  • 百度站长工具怎么关闭泰州网站整站优化
  • 昆山网站排名优化百度图片识别
  • 网站建设注意细节问题网站的推广
  • 新手制作网站网络营销分类
  • 淄博高端网站设计网络营销的培训课程
  • 商业网页设计给网站做seo的价格
  • 定制软件开发软件杭州新站整站seo
  • 网站备案抽查号码百度seo简爱
  • 外贸网络营销的主动营销有哪些西安优化外
  • 开网店哪个平台最好重庆seo技术教程
  • 网站上咱们做鱼饵开鲁网站seo
  • 深圳手机报价网站哪个浏览器看黄页最快夸克浏览器