力扣hot100——分割回文子串 + 回溯算法总结(算法代码模板)

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

力扣hot100——分割回文子串 + 回溯算法总结(算法代码模板)_第1张图片

解法思路:切割一个a之后,在ab中再去切割第二段.....

class Solution {
public:
    vector> res; // 最终结果
    vector path; // 当前结果
    vector> partition(string s) {
        backtracking(s,0);
        return res;
    }
    void backtracking(string &s,int start){
        if(start >= s.length()){
            res.push_back(path);
        }
        for(int i = start; i

回溯算法总结:

// 回溯算法模板  将问题抽象为n叉树
void backtracking( 集合,int start .....){ // 参数根据需求具体再增加
    // 终止条件
    if(条件){
        // 收集结果(叶子节点) (一般都在此时收集(组合,切割,排列,棋盘等))
        return;
    }

    // 单层处理
    for(int i = start; i< 集合.length();i++){
        处理节点;
        backtracking(集合,i+1 .....);// 递归函数;
        回溯操作,撤销上面的操作(将上一步类似入队,存储的元素再给退出来)
    }
}

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