【LeetCode热题100】【回溯】分割回文串

题目链接:131. 分割回文串 - 力扣(LeetCode)

要找出所有分割这个字符串的方案使得每个子串都是回文串,写一个判断回文串的函数,深度遍历回溯去找出所有分割方案,判断分割的子串是否是回文串

复制代码
class Solution {
public:
    vector<vector<string> > ans;
    vector<string> an;
    string s;

    bool isPalindromes(int left, int right) {
        while (left < right) {
            if (s[left++] != s[right--])
                return false;
        }
        return true;
    }

    void dfs(int i) {
        if (i == s.size()) {
            ans.push_back(an);
            return;
        }
        for (int j = i; j < s.size(); ++j) {
            if (isPalindromes(i, j)) {
                an.push_back(s.substr(i, j - i + 1));
                dfs(j + 1);
                an.pop_back();
            }
        }
    }

    vector<vector<string> > partition(string s) {
        this->s = move(s);
        dfs(0);
        return ans;
    }
};
相关推荐
陈天伟教授7 分钟前
人工智能应用- 材料微观:06.GAN 三维重构
人工智能·神经网络·算法·机器学习·重构·推荐算法
liliangcsdn44 分钟前
A3C强化学习算法的探索和学习
算法
Figo_Cheung1 小时前
Figo《量子几何学:从希尔伯特空间到全息时空的统一理论体系》(二)
算法·机器学习·几何学·量子计算
额,不知道写啥。1 小时前
HAO的线段树(中(上))
数据结构·c++·算法
LYS_06181 小时前
C++学习(5)(函数 指针 引用)
java·c++·算法
紫陌涵光2 小时前
669. 修剪二叉搜索树
算法·leetcode
NGC_66112 小时前
二分查找算法
java·javascript·算法
ADDDDDD_Trouvaille2 小时前
2026.2.21——OJ95-97题
c++·算法
blackicexs2 小时前
第五周第七天
数据结构·算法