131. 分割回文串

Posted zzytxl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了131. 分割回文串相关的知识,希望对你有一定的参考价值。

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

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

示例:

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

class Solution {
    public List<List<String>> partition(String s) {
        List<List<String>> res = new ArrayList<>();
        bt(s,res,new ArrayList<>());
        return res;
    }
    private void bt(String s,List<List<String>> res,ArrayList<String> list){
        if(s == null || s.length() == 0){
            res.add(new ArrayList<>(list));
            return;
        }
        for(int i = 1;i <= s.length();i++){
            String str = s.substring(0,i);
            if(isValid(str,0,str.length() - 1)){
                list.add(str);
                bt(s.substring(i),res,list);
                list.remove(list.size() - 1);
            }
        }
    }
    private boolean isValid(String s,int i ,int j){
        while(i < j){
            if(s.charAt(i) != s.charAt(j)) return false;
            i++;j--;
        }
        return true;
    }
}

 

以上是关于131. 分割回文串的主要内容,如果未能解决你的问题,请参考以下文章

131.分割回文串

131. 分割回文串

LeetCode 131. 分割回文串(Palindrome Partitioning)

LeetCode-131-分割回文串

题目地址(131. 分割回文串)

力扣算法:125-验证回文串,131-分割回文串---js