leetcode:Generate Parentheses
来源:互联网 发布:淘宝代运营被骗 编辑:程序博客网 时间:2024/05/22 16:52
题意是:现有n对括号,问这些括号共能组成多少合法的字符串
比如n=3,对应的字符串数组就是: "((()))", "(()())", "(())()", "()(())", "()()()"
[
]
这道题自己想到的思路是:每次在当前串中插入一个左/右括号,并且始终保证左括号数量不大于右括号(不然就会出现有右括号无法匹配到左括号的情况)。递归终结条件是判定左括号数量为0,然后一次性把剩下的右括号插入字符串,然后就得到一个新的符合条件的字符串,加入到ans数组中。这样效率较高,且不会出现重复的情况。
之前考虑过DP,但没想好状态方程,总会出现相同字符串的情况,比如()(.....),很可能在后面就会得到一个(......)()这样形式的字符串,而两者的形式完全相同:()(......)()
后来看论坛大神的介绍,发现只需要考虑一头就行,状态转移方程写成下面的形式即可:
DP[n]='('+DP[k]+')'+DP[n-k-1];
每次在开头加入总的一个括号,就不用担心后面出现相同的情况了。
阅读全文
0 0
- leetcode:Generate Parentheses
- LeetCode: Generate Parentheses
- LeetCode: Generate Parentheses
- [Leetcode] Generate Parentheses
- leetcode 51: Generate Parentheses
- [LeetCode] Generate Parentheses
- Leetcode: Generate Parentheses
- LeetCode Generate Parentheses
- 【leetcode】Generate Parentheses
- [LeetCode]Generate Parentheses
- Leetcode Generate Parentheses
- LeetCode-Generate Parentheses
- LeetCode: Generate Parentheses
- LeetCode - Generate Parentheses
- LeetCode 22: Generate Parentheses
- LeetCode: Generate Parentheses
- Leetcode: Generate Parentheses
- 【leetcode】Generate Parentheses
- 类和对象练习
- Fourier Temporal Pyramid原论文阅…
- 从安装cudnn拓展开的故事。。。
- 双流神经网络及3D卷积系列论文阅读…
- leetcode:括号匹配问题
- leetcode:Generate Parentheses
- 自行编写caffe网络层
- Caffe卷积层的实现细节
- 在VS2013上安装opencv
- 自制lenet:从获取数据到网络编写…
- 普通选项卡切换
- 自制lenet:从获取数据到网络编写…
- leetcode:Remove Element + Imple…
- MATLAB使用备注(二)