美文网首页
131.分割回文串

131.分割回文串

作者: youzhihua | 来源:发表于2019-12-19 15:51 被阅读0次

题目描述

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

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

示例:
输入

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

思路

  1. 使用回溯算法求解。

2.画出递归树(图片来自https://leetcode-cn.com/u/liweiwei1419/)。

3.根据递归树进行剪枝和递归操作即可。

Java代码实现

    public List<List<String>> partition(String s) {
        if(s.length() == 0)
            return new ArrayList<>();
        List<List<String>> res = new ArrayList<>();
        List<String> cur = new ArrayList<>();
        partition(s,0,s.length()-1,res,cur);
        return res;
    }

    private void partition(String s,int left,int right,List<List<String>> res,List<String> cur){
        if(left > right){
            res.add(new ArrayList<>(cur));
            return ;
        }
        for(int i=left;i<=right;i++){
            if(!judgePalindrome(s,left,i))
                continue;
            cur.add(s.substring(left,i+1));
            partition(s,i+1,right,res,cur);
            cur.remove(cur.size()-1);
        }
    }


    private boolean judgePalindrome(String s,int left,int right){
        while(left < right){
            if(s.charAt(left) != s.charAt(right))
                return false;
            left++;
            right--;
        }
        return true;
    }

相关文章

  • LeetCode-131-分割回文串

    LeetCode-131-分割回文串 131. 分割回文串[https://leetcode-cn.com/pro...

  • LeetCode 131-135

    131. 分割回文串[https://leetcode-cn.com/problems/palindrome-pa...

  • 2021.3.7每日一题

    131. 分割回文串[https://leetcode-cn.com/problems/palindrome-pa...

  • leetcode131 分割回文串 golang

    131. 分割回文串[https://leetcode-cn.com/problems/palindrome-pa...

  • 131.分割回文串

    题目描述 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回 s 所有可能的分割方案。 示例...

  • 131. 分割回文串

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

  • backtracing—— 131. 分割回文串

    这个题是分割回文串,首先回文串的判断,就是设置两个变量,分别从头和尾比较,都一样则是回文串。 然后就是回溯法的思路...

  • LeetCode 131. 分割回文串

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

  • dp、dfs:131.分割回文串

    动态规划找出所有回文子串 状态方程式 深度搜索 每次深度回归需注意remove结尾子回文串,防止影响下一组搜索 切...

  • Leetcode 131. 分割回文串(回溯算法 + 子串分割问

    问题描述 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。 示例 ...

网友评论

      本文标题:131.分割回文串

      本文链接:https://www.haomeiwen.com/subject/gcomnctx.html