力扣-回溯-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;
    }
};
相关推荐
算AI15 小时前
人工智能+牙科:临床应用中的几个问题
人工智能·算法
hyshhhh16 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
杉之17 小时前
选择排序笔记
java·算法·排序算法
烂蜻蜓17 小时前
C 语言中的递归:概念、应用与实例解析
c语言·数据结构·算法
OYangxf18 小时前
图论----拓扑排序
算法·图论
我要昵称干什么18 小时前
基于S函数的simulink仿真
人工智能·算法
AndrewHZ18 小时前
【图像处理基石】什么是tone mapping?
图像处理·人工智能·算法·计算机视觉·hdr
念九_ysl18 小时前
基数排序算法解析与TypeScript实现
前端·算法·typescript·排序算法
守正出琦18 小时前
日期类的实现
数据结构·c++·算法
ChoSeitaku18 小时前
NO.63十六届蓝桥杯备战|基础算法-⼆分答案|木材加工|砍树|跳石头(C++)
c++·算法·蓝桥杯