力扣:131. 分割回文串

 回溯解法思路:

1.先声明一个集合来接受全部的回文子串组合,在声明一个集合来接收单个回文子串的组合。

2.写一个回溯函数,里面有终止条件和遍历全部组合的for循环来进行遍历全部的组合,终止条件为开始索引等于字符串的长度时,表示遍历完了整个字符串,li2加入到li1中去。在遍历for循环中要回溯操作,同时要检查分割段是否为回文子串,如果不是回文子串就跳过本次循环。 要写一个检查回文子串的函数,其中用双指针来检查这个分割段是否是回文子串。

​
class Solution {
     //接收全部的回文子串
    List> li1=new ArrayList<>();
    //接收单个回文子串
    List li2=new ArrayList<>();
    public List> partition(String s) {
     //调用回溯函数
      huisu(s,0);
       return li1;
    }
    //回溯函数
 public void huisu(String s,int startIndex){
        //判断分割到了字符串的末尾
        if(startIndex==s.length()){
              li1.add(new ArrayList<>(li2));
            return;
         }
        //暴力的遍历全部组合
        for(int j=startIndex;j

你可能感兴趣的:(回溯,leetcode,算法)