题目描述:
给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。
返回 s 所有可能的分割方案。
示例:
输入: "aab"
输出:[ ["aa","b"], ["a","a","b"]]来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/palindrome-partitioning解题思路:
1、显然回溯法:求所有可能结果&结果是个List<list<>>类型。
2、此题与求所以子集很相似,知识每个自己都要判断一个是不是回文串。
3、注意判断回溯函数使用huisu(int begin,int end,String target) 便于字串处理
Java代码实现如下
1 //回文字符判断 2 public boolean isPalindrome(String s,int start,int end){ 3 while(start> partition(String s) {13 //求出所有子集14 //判断是不是回文15 List
> result = new ArrayList<>();16 List temp = new ArrayList<>();17 part(result,temp,s,0);18 return result;19 }20 21 public void part(List
> result,List temp,String s,int begin){22 if (begin==s.length()){23 result.add(new ArrayList(temp)); //一定要先申请内存,否则添加的是一个引用,返回结果为空。24 return; //处理完成一定要return!!!25 }26 for (int i=begin;i