首页 > 其他分享 >刷刷刷 Day 27 | 131. 分割回文串

刷刷刷 Day 27 | 131. 分割回文串

时间:2023-01-28 20:55:53浏览次数:51  
标签:deque 27 return String int startIndex 131 Day 回文

131. 分割回文串

LeetCode题目要求

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

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

示例

输入:s = "aab"
输出:[["a","a","b"],["aa","b"]]
解题思路

待完善

上代码

class Solution {
    List<List<String>> lists = new ArrayList<>();
    Deque<String> deque = new LinkedList<>();

    public List<List<String>> partition(String s) {
        backTracking(s, 0);
        return lists;
    }

    private void backTracking(String s, int startIndex) {
        //如果起始位置大于s的大小,说明找到了一组分割方案
        if (startIndex >= s.length()) {
            lists.add(new ArrayList(deque));
            return;
        }
        for (int i = startIndex; i < s.length(); i++) {
            //如果是回文子串,则记录
            if (isPalindrome(s, startIndex, i)) {
                String str = s.substring(startIndex, i + 1);
                deque.addLast(str);
            } else {
                continue;
            }
            //起始位置后移,保证不重复
            backTracking(s, i + 1);
            deque.removeLast();
        }
    }
    //判断是否是回文串
    private boolean isPalindrome(String s, int startIndex, int end) {
        for (int i = startIndex, j = end; i < j; i++, j--) {
            if (s.charAt(i) != s.charAt(j)) {
                return false;
            }
        }
        return true;
    }
}
重难点

附:学习资料链接

标签:deque,27,return,String,int,startIndex,131,Day,回文
From: https://www.cnblogs.com/blacksonny/p/17071247.html

相关文章

  • 刷刷刷 Day 27 | 40. 组合总和 II
    40.组合总和IILeetCode题目要求给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidate......
  • day64-联表查询
    联表查询大概同时显示多个表的数据进行查看或者合并从多张表中查取需要的信息/*分析需求,分析查询字段来自那些表格确定使用那种连接查询确定交叉点判断的条......
  • 刷刷刷 Day 27 | 39. 组合总和
    39.组合总和LeetCode题目要求给你一个无重复元素的整数数组 candidates和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target的所有 不同......
  • 【算法训练营day28】LeetCode93. 复原IP地址 LeetCode78. 子集 LeetCode90. 子集II
    LeetCode93.复原IP地址题目链接:93.复原IP地址独上高楼,望尽天涯想起来简单,写起来还是很难的一道题,小错误频发。慕然回首,灯火阑珊首先,因为本题要求只能分割成四段,所......
  • day01
    Markdown学习标题:+标题名字字体hello,world!黑体:两边都加*Hello,World!斜体:两边加*Hello,World!斜体加粗:两边加***Hello,World!删除线:两边加~~引用//大于号......
  • A Day With: Mathematics
    闲话:最近看npesta看的有点多,于是标题起的这个。为什么一个非GD人会这么关注GD啊。被Limbo震撼到了,尤其是最后的钥匙段,我一直盯着钥匙看了十几次也没看成功一次......
  • 「WC-2023」学习笔记(Day1&2)
    尼玛在游记里立flag是吧。1月必更新是吧。寒假作业都写不完了!!!!!这篇四舍五入就是1月学习记录了。1月剩下的杂题可能放2月去写。嗯也可能2月就退役了。退役了就没......
  • Day01
    Markdown初学标题空格+标题名字一级标题空格+标题名字二级标题同理可书写至六级标题字体Hello,word!前后加两个星号变成粗体Hello,word!前后加一个星号变成......
  • Rhino 7 for Mac(犀牛3D建模软件) 7.27中文激活版
    3D建模软件推荐:Rhino7!Rhino7可以创建、编辑、分析、记录、渲染、动画和转换NURBS曲线、曲面和实体、细分几何(SubD)、点云和多边形网格。在Rhino7中,我们修复了数百个......
  • 算法刷题 Day 22 | 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.
    今日内容:二叉搜索树的最近公共祖先二叉搜索树中的插入操作删除二叉搜索树中的节点详细布置235.二叉搜索树的最近公共祖先相对于二叉树的最近公共祖......