首页 > 其他分享 >代码随想录:分割回文窜

代码随想录:分割回文窜

时间:2025-01-22 21:36:09浏览次数:1  
标签:分割 target int res 随想录 back start 回文 string

本所谓切割,就是找切割位置,就是组合

class Solution {
public:
    vector<string> target;
    vector<vector<string>> res;
    vector<vector<string>> partition(string s) {
        rb(s, 0);
        return res;
    }

    void rb(string s, int start) {
        // 切割完毕
        if (start == s.length())
            res.push_back(target);

        for (int i = start; i < s.length(); i++) {
            string temp = string(s.begin() + start, s.begin() + i + 1);
            if (isReverse(temp)) {
                target.push_back(temp);
                rb(s, i + 1);
                target.pop_back();
            } else {
                continue;
            }
        }
    }

    bool isReverse(string s) {
        for (int i = 0, j = s.length() - 1; i < j; i++, j--) {
            if (s[i] != s[j])
                return false;
        }
        return true;
    }
};

标签:分割,target,int,res,随想录,back,start,回文,string
From: https://www.cnblogs.com/huigugu/p/18686799

相关文章

  • 代码随想录:组合总和二
    这题说实话有点晕晕乎乎的,最后直接把代码随想录的代码复制过来了。要解决的问题是,尽管用了不同位置的相同元素,但是会产生相同的结果。解决方法是排序后,跳过相同元素。代码随想录那个used数组我属实没看懂,这个方法倒是看懂了。classSolution{private:vector<vector<int......
  • 代码随想录:组合总和
    回溯的本质就是多层for循环嵌套,用于解决不知道有多少层for循环的情况,适当剪枝其实也是for循环里增加限制条件classSolution{public:vector<int>sum;vector<vector<int>>res;vector<vector<int>>combinationSum(vector<int>&candidates,inttarget){......
  • K8s 灰度发布实战:通过 Ingress 注解轻松实现流量分割与渐进式发布
    在现代微服务架构中,应用的更新和发布是一个高频且关键的操作。如何在不影响用户体验的前提下,安全、平稳地将新版本应用推送到生产环境,是每个开发者和运维团队必须面对的挑战。灰度发布(GrayRelease)作为一种渐进式发布策略,能够有效降低发布风险,而Kubernetes的Ingress注解功能为......
  • 代码分割:提升前端性能的利器
    在现代前端开发中,随着应用规模和复杂度的不断增加,页面加载速度成为了用户体验的关键因素之一。一个常见的性能问题是,浏览器需要一次性加载所有的JavaScript代码,这会导致较长的加载时间,影响页面的首次渲染时间。为了改善这一问题,代码分割(CodeSplitting)成为了一个重要的优化技术......
  • 代码随想录——动态规划31打家劫舍III(树状DP)
    这道题目是打家劫舍III(HouseRobberIII),是打家劫舍系列问题的变种。问题描述如下:小偷发现了一个新的区域,这个区域的所有房屋排列类似于一棵二叉树。如果两个直接相连的房屋在同一晚被打劫,房屋会自动报警。给定这棵二叉树的根节点root,求在不触发警报的情况下,小偷能够盗取的最......
  • 代码随想录:二叉搜索时的插入
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x),left(nullptr),right(nullptr){}*......
  • 代码随想录:将有序数组转化为二叉搜索树
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x),left(nullptr),right(nullptr){}*......
  • 代码随想录:修剪二叉搜索树
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x),left(nullptr),right(nullptr){}*......
  • 代码随想录:删除二叉搜索树中的节点
    由于涉及到树的结构变化,用递归写比较简单,竟然一次跑通了/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(int......
  • 代码随想录:把二叉搜索树转化为累加树
    相当于将数组从右到左遍历,下一个数加上一个数,二叉搜索树中序遍历(左中右)为顺序,右中左则为倒叙/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),rig......