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

网站快速优化排名方法做网站的主要内容

网站快速优化排名方法,做网站的主要内容,网络规划与设计论文开题报告,什么是营销型网站呢leetcode:131. 分割回文串 - 力扣(LeetCode) 题目 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回 s 所有可能的分割方案。 示例: 输入: "aab" 输出: [ ["aa","b"], [&quo…

leetcode:131. 分割回文串 - 力扣(LeetCode)

题目

给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。

返回 s 所有可能的分割方案。

示例: 输入: "aab" 输出: [ ["aa","b"], ["a","a","b"] ]

思路

首先解决回文串的问题,之前做过类似的,运用对称思想或者双指针判断:

// 判断字符串s的子串是否为回文串bool isPalindrome(const string &s, int start, int end){// 从子串的两端开始,向中间遍历for (int i = start, j = end; i < j; i++, j--){// 如果发现两端的字符不相等,则子串不是回文串if (s[i] != s[j])return false;}// 如果所有对应的字符都相等,则子串是回文串return true;}

所以接下来的主要问题是怎么分割?

字符的分割图如下:

这里就跟前面的组合问题很像,这里的分割线是啥呢?其实就是startIndex! 

什么时候切割结束?就是startIndex到了s.size(),此时收集结果:

if (startIndex >= s.size()){result.push_back(path);return;}

怎么在循环里面截取子串?

子串的范围是[startIndex,i],然后使用isValid来判断是否为回文子串,如果是回文,就加入到path,path用来记录切割过的回文子串。

for (int i = startIndex; i < s.size(); i++){if (isPalindrome(s, startIndex, i)){string str = s.substr(startIndex, i - startIndex + 1);path.push_back(str);}elsecontinue;backtracking(s, i + 1);path.pop_back();}

子串str的获取方式用的是substr函数,获取当前这一段的字符串。

切割过的位置不可以重复切割,所以backtracking里面接的是i+1。

整体代码如下:

#include <iostream>
#include <vector>
using namespace std;class Solution
{
private:vector<vector<string>> result;vector<string> path;// 判断字符串s的子串是否为回文串bool isPalindrome(const string &s, int start, int end){// 从子串的两端开始,向中间遍历for (int i = start, j = end; i < j; i++, j--){// 如果发现两端的字符不相等,则子串不是回文串if (s[i] != s[j])return false;}// 如果所有对应的字符都相等,则子串是回文串return true;}void backtracking(const string &s, int startIndex){if (startIndex >= s.size()){result.push_back(path);return;}for (int i = startIndex; i < s.size(); i++){if (isPalindrome(s, startIndex, i)){string str = s.substr(startIndex, i - startIndex + 1);path.push_back(str);}elsecontinue;backtracking(s, i + 1);path.pop_back();}}public:vector<vector<string>> partition(string s){result.clear();path.clear();backtracking(s, 0);return result;}
};

总结

切割问题跟组合问题很像,切割也要求不可以重复切割,所以需要用一个startIndex来指定每次切割的起始位置。

参考资料

代码随想录 

带你学透回溯算法-分割回文串(对应力扣题目:131.分割回文串)| 回溯法精讲!_哔哩哔哩_bilibili 


文章转载自:

http://PaN74NAq.kwqcy.cn
http://5JYh1bfl.kwqcy.cn
http://aynfFOoc.kwqcy.cn
http://knilb3Hx.kwqcy.cn
http://ZJWetS7q.kwqcy.cn
http://PW844D5h.kwqcy.cn
http://J38jYCvR.kwqcy.cn
http://tP39dNmW.kwqcy.cn
http://yVZGHSkM.kwqcy.cn
http://CuvulH36.kwqcy.cn
http://LFrzJqra.kwqcy.cn
http://co18r6Zq.kwqcy.cn
http://IA11sh9V.kwqcy.cn
http://NfGlAkfO.kwqcy.cn
http://trm8shG5.kwqcy.cn
http://fJRb4Wri.kwqcy.cn
http://0ZKBe97p.kwqcy.cn
http://CCLr4BuX.kwqcy.cn
http://BEgbU6zg.kwqcy.cn
http://P9oHIx5z.kwqcy.cn
http://Zkdkl50G.kwqcy.cn
http://KH1XtnNN.kwqcy.cn
http://SBTztTuT.kwqcy.cn
http://yPQX95Rv.kwqcy.cn
http://oKA8qID0.kwqcy.cn
http://1HtoJnUX.kwqcy.cn
http://VGyHl18q.kwqcy.cn
http://U4CCjhoB.kwqcy.cn
http://XZzn5x5A.kwqcy.cn
http://f0I8wHQy.kwqcy.cn
http://www.dtcms.com/wzjs/762640.html

相关文章:

  • 无锡建网站价格著名的wordpress网站
  • 网站正在紧急建设中做分析图超牛的地图网站
  • 做电影网站解析乔拓云智能建站平台
  • 如何找人做网站个人网站的建设
  • 织梦分类信息做的网站网站建设不足之处
  • 门户网站流量甘肃住房和城乡建设厅网站首页
  • 网站页面设计制作asp漂亮的办公家具公司网站源码
  • 自己做的网站本地虚拟上传十种网络推广的方法
  • 企业的网站建设制作平台可以做翻译兼职的网站
  • 多语言版本的网站成都协会网站建设
  • 江门网站建设方案雄安做网站公司
  • 网站建设公司外包在线制作表白网站的源码
  • 龙口网站建设公司报价荧光字网站
  • 韶关网站建设公司seo效果检测步骤
  • 温州网站制作中国上市公司名单大全
  • 网站内容建设的核心和根本是做苗木网站哪家做得好
  • 购物网站建设的必要性怎么知道网站是php
  • 毕业网站设计网站设计网站优化公司
  • 营销型网站是什么样的网站建设英文方案
  • 重庆人才招聘网官网西安网站排名优化
  • 网站加速器免费高校后勤网站建设要求及内容
  • 长沙公积金网站怎么做异动电信改公网ip可以做网站吗
  • 网站建设运营费计入什么科目成功网站案例有哪些
  • 做诱导网站松江做移动网站
  • 在百度做网站网站建设gzzctyi
  • 网站建设平台官网微网站开发案例
  • 网站托管就业万网怎么做网站
  • 博达站群网站建设教程canvas案例网站
  • 西安网站建设求职简历唐山专业网站建设公司
  • 怎么做淘客网站推广个性化定制平台