力扣-回溯-131 分割回文串

思路

需要判断回文串,再选择是否添加到path里

代码

cpp 复制代码
class Solution {
public:
    vector<string> path;
    vector<vector<string>> result;
    bool isReverse(string s){
        int l = 0, r = s.size() - 1;
        while(l < r){
            if(s[r] != s[l]){
                return false;
            }
            r--;
            l++;
        }
        return true;
    }

    void backTracking(string s, int statIndex){
        if(statIndex == s.size()){
            result.push_back(path);
            return;
        }

        string sub;
        for(int i = statIndex; i<s.size(); i++){
            sub += s[i];
            if(!isReverse(sub)) continue;
            path.push_back(sub);
            backTracking(s, i+1);
            path.pop_back();
        }

        return;
    }
    vector<vector<string>> partition(string s) {
        backTracking(s, 0);

        return result;
    }
};
相关推荐
海的诗篇_1 小时前
移除元素-JavaScript【算法学习day.04】
javascript·学习·算法
自动驾驶小卡1 小时前
A*算法实现原理以及实现步骤(C++)
算法
Unpredictable2221 小时前
【VINS-Mono算法深度解析:边缘化策略、初始化与关键技术】
c++·笔记·算法·ubuntu·计算机视觉
编程绿豆侠1 小时前
力扣HOT100之多维动态规划:1143. 最长公共子序列
算法·leetcode·动态规划
珂朵莉MM1 小时前
2021 RoboCom 世界机器人开发者大赛-高职组(初赛)解题报告 | 珂学家
java·开发语言·人工智能·算法·职场和发展·机器人
fail_to_code2 小时前
递归法的递归函数何时需要返回值
算法
C137的本贾尼2 小时前
(每日一道算法题)二叉树剪枝
算法·机器学习·剪枝
BUG收容所所长4 小时前
栈的奇妙世界:从冰棒到算法的华丽转身
前端·javascript·算法
XRZaaa4 小时前
常见排序算法详解与C语言实现
c语言·算法·排序算法