题目

https://leetcode.com/problems/palindrome-partitioning/

题解

中规中矩的递归,因为每一层都需要在上一层保存好的 list 的基础上继续,而且不能影响下一层递归,所以做了一些 local 化的操作,自我感觉不是很优雅。

更好的解法可以参考:官方题解

class Solution {public List<List<String>> partition(String s) {List<List<String>> result = new ArrayList<>();List<String> curList = new ArrayList<>();process(s, 0, curList, result);return result;}public void process(String s, int begin, List<String> curList, List<List<String>> result) {if (begin >= s.length()) return;if (isPalindrome(s, begin, s.length() - 1)) {List<String> temp = new ArrayList<>(curList);temp.add(s.substring(begin, s.length()));result.add(temp);}List<String> local;for (int i = begin; i < s.length(); i++) {if (isPalindrome(s, begin, i)) {local = new ArrayList<>(curList);local.add(s.substring(begin, i + 1));process(s, i + 1, local, result);}}}public boolean isPalindrome(String s, int i, int j) {while (i < j) {if (s.charAt(i) != s.charAt(j)) return false;i++;j--;}return true;}
}

leetcode 131. Palindrome Partitioning | 131. 分割回文串(递归解法)相关推荐

  1. 怎么判断一个字符串的最长回文子串是否在头尾_LeetCode 第 131 号问题:分割回文串...

    题目来源于 LeetCode 上第 131 号问题:分割回文串.题目难度为 Medium,目前通过率为 45.8% . 题目描述 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串. 返 ...

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

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

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

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

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

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

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

    LeetCode-笔记-131. 分割回文串 131. 分割回文串 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 .返回 s 所有可能的分割方案. 回文串 是正着读和反着读都 ...

  6. 131. 分割回文串

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

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

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

  8. LeetCode 1278. 分割回文串 III

    截止到目前我已经写了 600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载 下载链接:https://pan.baidu.com/s/1hj ...

  9. leetcode:491. 递增子序列、17. 电话号码的字母组合、31. 分割回文串、93. 复原 IP 地址(JavaScript)

    文章目录 491. 递增子序列 分析 去重 如何保证递增呢? 17. 电话号码的字母组合 思路: 单层递归逻辑 递归终止条件 完整代码 另一种写法 31. 分割回文串 思路:分析题目本题可分为两步 9 ...

  10. 【回文串问题】分割回文串

    Leetcode:131. 分割回文串 - 力扣(LeetCode) (leetcode-cn.com) 分为两部分: 1.动态规划确定子串是否是回文串 2.枚举子集 时间复杂度:O(n*2^n) 空 ...

最新文章

  1. 实现通用人工智能还要多久?Hinton与AlphaGo之父这样回答
  2. 彻底搞懂基于LOAM框架的3D激光SLAM全套学习资料汇总!
  3. python【数据结构与算法】各进制转换-使用内置函数
  4. 大二c语言数电课程设计,数电课程设计报告(数字钟的设计).doc
  5. android列表滑到底部,Android中判断listview是否滑动到顶部和底部的实现方法
  6. PyCairo 中的剪裁和屏蔽
  7. 为啥我的Python这么慢 (一)
  8. Windows内核API HOOK 之 Inline Hook
  9. 虚拟机克隆后如何修复网络、主机名等问题
  10. P1955 [NOI2015] 程序自动分析
  11. 微信小游戏跳坑之旅(一)——使用白鹭引擎开发之创建项目
  12. 使用python进行re拆分网页内容
  13. MAX30102的STM32驱动程序
  14. css 全文字体大小,CSS 字体大小
  15. Unity3D实现3D立体的圆环进度条(圆环百分比、圆环血条)
  16. 当你追求女生时,你们聊些什么?
  17. 手机端或PC端利用高德地图和腾讯地图获取用户当前位置信息
  18. mysql--大于小于等于
  19. 事件抽取(event extraction)
  20. 硬件设计人员制作电路板需提供的材料

热门文章

  1. snmpset对象不可写_[Python]可变对象与多进程通信
  2. java 微信api框架_Java架构学习(五十二)使用框架开发微信微信框架介绍整合微信开发框架WxJava使用微信返回消息模板接口使用WxJava框架发送模板消息http协议参数转义知识...
  3. 26.PhantomData幽灵数据.rs
  4. 0.IDA-基本的反汇编算法
  5. 3_8 StateMode 状态模式
  6. 1.2句柄及 WinMain函数
  7. SQL Server在存储过程中编写事务处理代码的三种方法
  8. 进程间通信 - 剪贴板实现
  9. 快速发包突破ARP防火墙思路
  10. C语言程序设计 | 操作符介绍与使用方法