LeetCode-笔记-131. 分割回文串

131. 分割回文串

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

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

示例 1:

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

示例 2:

输入:s = "a"
输出:[["a"]]

思路在代码里:

如下图所示:aab先拆成a,ab,在a是回文串的情况下再拆ab,ab可以拆成a,b与ab,ab不是回文串顾舍去,最终得到a,a,b。然后再拆成aa,b。同理拆成aab时aab不是回文串舍去。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YeOm92zy-1619670009162)(C:\Users\wei\AppData\Roaming\Typora\typora-user-images\image-20210429121645365.png)]

class Solution {public:vector<string> vs; //定义字符串容器vector<vector<string>> vvs;//定义二维字符串容器bool isPali(string _s,int start,int end,vector<vector<int>> &mn){//判断是否是回文串,起始位置start,末位置endint i=start;int j=end;while(start<end){if(_s[start]==_s[end]) {start++;end--;}else{mn[start][end]=2;return false;}}mn[i][j]=1;return true;}void dfs(int addr,string s,vector<vector<int>> &mn){//递归,分割字符串,并判断是否是回文串if(addr==s.size()){vvs.push_back(vs);return;}for(int i=addr;i<s.size();++i){//cout<<addr<<"***"<<i<<endl;//cout<<isPali(s,addr,i)<<endl;if(mn[addr][i]==2) continue;if(mn[addr][i]==1||isPali(s,addr,i,mn)){vs.push_back(s.substr(addr, i - addr + 1));dfs(i+1,s,mn);vs.pop_back();}}}vector<vector<string>> partition(string s) {vector<vector<int>> mn(s.size(),vector<int>(s.size(),0));//记忆数组避免重复判断dfs(0,s,mn);return vvs;}
};

LeetCode-笔记-131. 分割回文串相关推荐

  1. 【python】一道LeetCode搞懂递归算法!#131分割回文串 #以及刷LeetCode的一点点小心得 [数据结构与算法基础]

    题目:给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串.返回 s 所有可能的分割方案. # 示例 输入: "aab" 输出: [["aa",&q ...

  2. LeetCode 131. 分割回文串【字符串,回溯算法】

    131. 分割回文串 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 .返回 s 所有可能的分割方案. 回文串 是正着读和反着读都一样的字符串. 示例 1: 输入:s = &q ...

  3. 131. 分割回文串

    链接:131. 分割回文串 题解:https://leetcode-cn.com/problems/palindrome-partitioning/solution/hui-su-fa-si-lu-y ...

  4. Suzy找到实习了吗 Day27 | 回溯进行中:39. 组合总和,40. 组合总和 II,131.分割回文串

    39. 组合总和 题目 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 , ...

  5. LeetCode 131. 分割回文串(回溯)

    文章目录 1. 题目 2. 回溯 1. 题目 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串. 返回 s 所有可能的分割方案. 示例: 输入: "aab" 输出: ...

  6. leetcode 131. 分割回文串 思考分析

    题目 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串. 返回 s 所有可能的分割方案. 思考 问题可以分为两个子问题:1.判断回文串2.分割数组 判断回文串 bool isPalin ...

  7. leetcode 131. 分割回文串(dp+回溯)

    给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 .返回 s 所有可能的分割方案. 回文串 是正着读和反着读都一样的字符串. 示例 1: 输入:s = "aab&quo ...

  8. 131. 分割回文串(回溯算法)

    给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 .返回 s 所有可能的分割方案. 回文串 是正着读和反着读都一样的字符串. 示例 1: 输入:s = "aab&quo ...

  9. 力扣131. 分割回文串(JavaScript)

    //同一个组合,需要传入起始位置 var partition = function(s) {let arr=[]let p=[]const dd=function(index){//在某个路径上切割完 ...

最新文章

  1. Flask的flask-sqlalchemy
  2. 在Windows中将目录添加到PATH环境变量
  3. DirectX标准规定 DirectX和OpenGL的不同
  4. 高效算法——E - 贪心-- 区间覆盖
  5. HDU 3790 最短路径问题
  6. (七)整合spring cloud云服务架构 - common-service 项目构建过程
  7. 中国男足孔已己版(转载,博大家一笑)
  8. Markdown中插入图片及图注
  9. cognos 样例 oracle,cognos10.2 sample(ORACLE学样例)
  10. XML 在SQLServer中的使用
  11. mybatis字符串转成数字_JavaScript 字符串中的 pad 方法!
  12. 原生列表table固定表头
  13. Excel中排序和筛选
  14. Servlet--监听器
  15. 影响MRP计算的因素———提前期
  16. 汽车诊断仪常用特殊功能-ABS排气
  17. 使用 AccountManager 实现系统内共享账号
  18. android 定时静音,Android实现定时自动静音小助手
  19. 【必备算法】动态规划:LeetCode题(六)322. 零钱兑换,518. 零钱兑换 II
  20. 【小家java】java9新特性(简述十大新特性) 褒贬不一

热门文章

  1. MPB:地大郭东毅等-一种针对重金属污染土壤的高效DNA提取方法
  2. ISME:昆士兰大学郭建华组-人造甜味剂会促进细菌耐药性的传播
  3. MPB:邓晔、王尚等-​环境样本中的细菌总量测定—流式细胞法
  4. CC讲坛-大脑疾病背后的秘密-许执恒
  5. 形状相似的物品_废弃物品在体育课中的再利用
  6. Python使用matplotlib函数subplot可视化多个不同颜色的折线图、为多个子图添加总标题(main title)、自定义设置主标题字体类型、字体大小、字体颜色等
  7. R假设检验之莫德中位数检验(Mood‘s Median Test)
  8. 三代测序技术特点比较
  9. Linux的文件夹及文件的权限
  10. 使用Bioconda管理生信软件(以bwa为例)