首页 > 编程语言 >131. 分割回文串-c++

131. 分割回文串-c++

时间:2024-05-08 17:11:26浏览次数:25  
标签:分割 int res c++ re 131 vector 回文

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

示例 1:

输入:s = "aab"
输出:[["a","a","b"],["aa","b"]]
示例 2:

输入:s = "a"
输出:[["a"]]

class Solution {
public:
    vector<vector<string>> partition(string s) {
        vector<vector<string>>res;
        vector<string>re;

        backtrack(s,0,res,re);
        return res;
    }
    bool isPalindrome(string& s,int left,int right)
    {
        while(left<right)
        {
            if(s[left]!=s[right])
            {
                return false;
            }
            left++;
            right--;
        }
        return true;
    }
    void backtrack(string& s , int start , vector<vector<string>>&res,vector<string>&re)
    {
        if(start==s.length())
        {
            res.push_back(re);
            return;
            
        }
        for(int i=start;i<s.length();i++)
        {
            if(isPalindrome(s,start,i))
            {
                string tmp=s.substr(start,i-start+1);
                re.push_back(tmp);
                backtrack(s,i+1,res,re);
                re.pop_back();
            }
        }
    }
};

标签:分割,int,res,c++,re,131,vector,回文
From: https://www.cnblogs.com/donghao99/p/18180277

相关文章

  • 79. 单词搜索-c++
    给定一个mxn二维字符网格board和一个字符串单词word。如果word存在于网格中,返回true;否则,返回false。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例1:输入......
  • C++基础-如何引入第三方静态库、动态库或自定义库 摘自 https://blog.csdn.net/u01310
    C++无论是内置库还是第三方库,都需要自己手动进行查找、配置、引入等工作。本文即是帮助完成C++项目对于库、框架如何完成依赖引入达成可调用的目的,重点讲述开发工具VisualStudio中的操作静态库(.lib)静态库引入适用用于大部分无开源的第三方库,开发者不需要关心库的具体实现如何,......
  • UEC++做拖拽时的UDragDropOperation 的PayLoad是什么
    在UnrealEngine中,使用C++进行拖拽操作时,UDragDropOperation类的Payload成员变量允许你传递与拖拽操作相关的任何类型的数据。它通常被用来存储一些关于被拖拽元素的信息,这些信息在拖拽开始时被设置,然后可以在拖拽结束时被检索和使用。Payload是一个UObject*类型的指针,这意......
  • 在UEC++中的FReply
    在UnrealEngine中,FReply是一个核心类,用于在UI事件处理中返回和控制事件的传播。它主要用于SlateUI框架,是处理输入事件(如点击、拖拽、鼠标移动等)时的回应类型。FReply用于告诉Slate事件系统一个特定的事件是否被处理,以及是否应该将事件继续传递给其他控件。例如,当一个按钮被点......
  • C++容器
    C++容器bitset构造函数//1.默认构造函数:0bitset<10>a; //a:0000000000//2.用一个数值初始化//(1)当用一个数值去构造的时候,其实就是将数值在内存中的存储方式显示出来。(数值在内存中是以补码形式存储的)//(2)若bitset的位数n小于数值的位数,只取数值(小端的)前n位......
  • c++ 模板模板参数("Template Template Parameters")
    #include<iostream>#include<vector>#include<list>usingnamespacestd;namespace_nmsp1{//T类型模板参数,代表容器中元素类型//Container代表的不是一个类型(不能是一个类型模板参数),而是一个类模板(类名)//Container不叫做类型模板参数,而叫做模板模......
  • C++ keywords
     一、C++98及以前  二、C++111.alignofa.简介:是一个运算符,用于确定类型的对齐要求。b.语法:i.alignof(type_id/object)       c.返回值:i.std::size_t        // 返回指定类型或......
  • [18] C++虚幻引擎功能拓展
    Day1添加轴动作EAxis::Type//轴方向枚举//旋转输入轴UInputModifierSwizzleAxis*SwizzleAxis=NewObject<UInputModifierSwizzleAxis>(MappingContext);KeyMapping.Modifiers.Add(SwizzleAxis);//取反输入轴UInputModifierNegate*Negate=NewObject<UInputModifierNe......
  • 桥接模式(C++)
    桥接模式:主要应用于需求复杂,不确定的场景,用于解耦#include<iostream>usingnamespacestd;//ImplementorclassDrawAPI{public:virtualvoiddrawCircle(intradius,intx,inty)=0;virtual~DrawAPI(){}};//ConcreteImplementorAclassRedCircle:......
  • C#/C++ 通过ODBC连接OceanBase Oracle租户
    概述近期我们项目正处于将Oracle数据库迁移到OceanBaseOracle租户模式的阶段。考虑到我们项目采用了C++和C#混合开发,并且使用了多种技术,因此存在多种数据库连接方式。然而,针对C#连接OceanBase的案例相对较少,因此我特意记录下这一过程。开放数据库互连(ODBC)是微软公司开放服务结......