leetcode 22. 括号生成

题目如下

复制代码
因为题目中的括号只有一种组成括号的只有"("和")"故我们可以通过暴力搜索出答案("("和")"一样都只有两种状态放与不放且我们是从左到右生成的)。
那么,如何保证暴力搜索出的字符串是正确的括号对呢?
在回答这个问题之前我们来思考不正确的括号对是如何生成的吧
显然按照我们的生成方案当右括号多于左括号时括号对不正确。
所以我们通过数量限制来解决这些不正确的情况。

通过代码

cpp 复制代码
class Solution {
public:
void back(vector<string> &ans,int n,int left,int right,string s) {
    if(left + right == n * 2) {
        ans.push_back(s);
        return;
    }
    if(left < n) {
        back(ans,n,left + 1,right,s + "(");
    }
    if(right < left) {
        back(ans,n,left,right + 1,s + ")");
    }
}
vector<string> generateParenthesis(int n) {
        vector<string> ans;
        back(ans,n,0,0,"");
        return ans;
}

};
相关推荐
天若有情6734 分钟前
【C++趣味实战】仿写Burp代理逻辑!自定义可控迭代器:拦截Intercept/放行Forward/重放Repeater全实现
java·开发语言·c++
磊 子8 分钟前
C++function与bind绑定器讲解
java·jvm·c++
梦想的颜色12 分钟前
MySQL 查询性能核武器
运维·服务器·数据结构·数据库·mysql
Mumu121813 分钟前
P3212 [HNOI2011] 任务调度
算法
KWTXX20 分钟前
vibe coding-提示词
java·前端·算法
八解毒剂40 分钟前
查找-从二分查找到二叉排序树
数据结构·c++·算法
风静如云42 分钟前
C++(11):成员函数饰词
c++
程序猿追1 小时前
画个饼,给数据点颜色看看——在 HarmonyOS 模拟器上手搓一个饼图/环形图组件
深度学习·算法·harmonyos
郝学胜-神的一滴1 小时前
Qt 高级开发 024:QSplitter分裂器布局精讲
开发语言·c++·qt·程序人生·用户界面
QT-Neal1 小时前
C++ 内存详解
c++