博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Generate Parentheses
阅读量:4344 次
发布时间:2019-06-07

本文共 1477 字,大约阅读时间需要 4 分钟。

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.

For example, given n = 3, a solution set is:

"((()))", "(()())", "(())()", "()(())", "()()()"

 

想到的就是DFS,backtrace

 

class Solution {        vector
m_strs; public: void backtrace(string str, int leftPaNum, int paNum) { if(leftPaNum == paNum && str.size() == 2*paNum) { m_strs.push_back(str); return; } if(leftPaNum == paNum) { str += ")"; backtrace(str, leftPaNum, paNum); } else { // left num == right num if(leftPaNum == (str.size()-leftPaNum) ) { str += "("; backtrace(str, leftPaNum + 1, paNum); } else// left num > right num { str += "("; backtrace(str, leftPaNum + 1, paNum); str.erase(str.end() - 1); str += ")"; backtrace(str, leftPaNum, paNum); } } } vector
generateParenthesis(int n) { m_strs.clear(); string str; backtrace(str, 0, n); return m_strs; }};

 

转载于:https://www.cnblogs.com/diegodu/p/4278713.html

你可能感兴趣的文章
NIO:与 Buffer 一起使用 Channel
查看>>
Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析
查看>>
MFC接收ShellExecute多个参数
查看>>
volatile和synchronized的区别
查看>>
RocketMQ介绍与云服务器安装
查看>>
并发量计算研究
查看>>
类中的静态函数和非静态函数的区别
查看>>
windows 下安装Apache
查看>>
Effective C++ 34 区分接口继承和实现继承
查看>>
Redis配置文件参数说明
查看>>
drf视图组件、认证组件
查看>>
Python_正则表达式
查看>>
[USACO08NOV]时间管理Time Management(排序,贪心)
查看>>
Hybrid App开发设计与实现
查看>>
Fedora14 mount出现错误时解决办法【亲测有效】
查看>>
实验四
查看>>
回顾冒泡排序
查看>>
Ajax
查看>>
006 numpy常用函数
查看>>
tensorflow学习笔记(二)
查看>>