题目来源于 LeetCode 上第 131 号问题:分割回文串。题目难度为 Medium,目前通过率为 45.8% 。

题目描述

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

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

示例:

输入

题目解析

首先,对于一个字符串的分割,肯定需要将所有分割情况都遍历完毕才能判断是不是回文数。不能因为 abba 是回文串,就认为它的所有子串都是回文的。

既然需要将所有的分割方法都找出来,那么肯定需要用到DFS(深度优先搜索)或者BFS(广度优先搜索)。

在分割的过程中对于每一个字符串而言都可以分为两部分:左边一个回文串加右边一个子串,比如 "abc" 可分为 "a" + "bc" 。 然后对"bc"分割仍然是同样的方法,分为"b"+"c"。

在处理的时候去优先寻找更短的回文串,然后回溯找稍微长一些的回文串分割方法,不断回溯,分割,直到找到所有的分割方法。

举个 :分割"aac"。

  1. 分割为 a + ac
  2. 分割为 a + a + c,分割后,得到一组结果,再回溯到 a + ac
  3. a + ac 中 ac 不是回文串,继续回溯,回溯到 aac
  4. 分割为稍长的回文串,分割为 aa + c 分割完成得到一组结果,再回溯到 aac
  5. aac 不是回文串,搜索结束

动画描述

代码实现

class 

我的专栏:

和程序员小吴一起学算法​zhuanlan.zhihu.com

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

  1. 最长不重复字符串python_Python简单实现查找一个字符串中最长不重复子串的方法...

    本文实例讲述了Python简单实现查找一个字符串中最长不重复子串的方法.,具体如下: 刚结束的一个笔试题,很简单,不多说简单贴一下具体的实现: #!usr/bin/env python #encodi ...

  2. python查找最长的字符串_Python简单实现查找一个字符串中最长不重复子串的方法...

    本文实例讲述了Python简单实现查找一个字符串中最长不重复子串的方法.分享给大家供大家参考,具体如下: 刚结束的一个笔试题,很简单,不多说简单贴一下具体的实现: #!usr/bin/env pyth ...

  3. c与指针 从一个字符串中提取子串_python实现找出来一个字符串中最长不重复子串...

    刚结束的一个笔试题,很简单,不多说简单贴一下具体的实现: #!usr/bin/env python#encoding:utf-8 '''__Author__:沂水寒城功能:找出来一个字符串中最长不重复 ...

  4. python找最长的字符串_Python简单实现查找一个字符串中最长不重复子串的方法

    本文实例讲述了Python简单实现查找一个字符串中最长不重复子串的方法.分享给大家供大家参考,具体如下: 刚结束的一个笔试题,很简单,不多说简单贴一下具体的实现: #!usr/bin/env pyth ...

  5. 【算法题】求一个字符串的最长不重复子串

    [题目描述] 求一个字符串的最长不重复子串.比如:给定"abcabcbb"的答案是"abc",长度是3:给定"bbbbb"的答案是" ...

  6. 怎么判断一个字符串的最长回文子串是否在头尾_LeetCode5:最长回文子串

    最长回文子串问题是一个比较经典的题目,且字符串的处理问题也比较重要,这里实现了几种可行的方法,写了ac的表示可以通过,有的是可运行但是会超时或者是超过内存限制. 一:优化的暴力和暴力解 1.1 算是优 ...

  7. 怎么判断一个字符串的最长回文子串是否在头尾_【Leetcode每日打卡】最长回文串...

    干货预警:所有文章都会首发于我的公众号[甜姨的奇妙冒险],欢迎watch. 一.来历: 力扣从3月开始开启了每日一题打卡活动,于是跟风加入了打卡大军,这两天写评论.发题解,没想到反响还不错,收到了来自 ...

  8. 怎么判断一个字符串的最长回文子串是否在头尾_最长回文字串/子序列问题(leetcode5,9,519)

    leetcode 5 最长回文子串 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: " ...

  9. 怎么判断一个字符串的最长回文子串是否在头尾_每日一道算法题,让你的头脑更活跃(寻找最长回文子串)...

    前言 最近准备把算法慢慢的捡起来,所以准备日更一道算法题目,难度自然是由简入难,所以同学们可以每天都来看看小编的更新. 日更时间定在每晚20:00,希望大家多多关注啦. 昨天就欠更了,简直就是打脸.过 ...

最新文章

  1. channelinboundhandler中都包含了哪一类的方法_备考CMA考试有哪些方法技巧?
  2. ngx_lua应用最佳实践
  3. python tushare获取股票数据_Python 金融: TuShare API 获取股票数据 (1)
  4. 听说你对 ES6 class 类还不是很了解
  5. 加密安装Kli Linux
  6. python turtle画房子详细解释_[宜配屋]听图阁
  7. 摩托罗拉edge X30屏下版真机首曝:四边等宽 屏下显示效果出众
  8. 使用OpenCV的分水岭算法
  9. 用gambit学博弈-完全信息静态博弈
  10. js划词翻译、屏幕取词,取词位置获取(真正解决定位问题)
  11. PR视频旋转处理方法
  12. 计算机桌面字体咋调整,如何调整电脑桌面字体的大小
  13. 2021中兴捧月神算师算法赛,4-24第一场,第一题:A - 跳高,2021-4-27
  14. 手机如何注册163邮箱?注册邮箱的方法步骤
  15. 为什么大容量的服务器SAS硬盘普遍都只有7200rpm的转速?
  16. 设计灵感:12个App的登录注册界面案例参考
  17. 考研每日加油站(持续更新)
  18. cad批量选择相同块_cad怎么快速选择相同图形/块?
  19. python字符串赋值多个变量(Python字符串赋值)
  20. 微信小程序---wxss常用属性

热门文章

  1. PLSQL 设置布局
  2. 前端_网页编程 节流
  3. android zxing 自动对焦,ZXing自动对焦问题
  4. vue 圆形 水波_vue项目百度地图+echarts的涟漪水波效果
  5. Hadoop 中zoo_数据分析中的Excel、R、Python、SPSS、SAS和SQL
  6. Python 线程互斥锁 Lock - Python零基础入门教程
  7. Python 匿名函数 lambda - Python零基础入门教程
  8. linux下进程监听端口,linux下查看监听端口对应的进程
  9. jmeter java性能_jmeter java性能测试
  10. 宝塔php安装那个合_使用宝塔面板安装nextcloud | 启用本地存储 | 安装smbclient