个人记录-LeetCode 22. Generate Parentheses
来源:互联网 发布:2001年全明星赛数据 编辑:程序博客网 时间:2024/06/06 20:47
问题:
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:
[ "((()))", "(()())", "(())()", "()(())", "()()()"]
问题的要求是:写出所有符合正常使用方式的括号组合。
最直观的思路就是穷举出所有组合,然后判断每个组合是否有效。
代码示例:
public class Solution { public List<String> generateParenthesis(int n) { List<String> result = new ArrayList<>(); //利用递归的方式得到所有的组合,并判断 createString(result, "", n, n); return result; } //numF表示有"("的数量,numB表示")"的数量 private void createString(List<String> result, String str, int numF, int numB) { if (numF == 0 && numB == 0) { //此时,组合构造完毕,判断是否有效 if (isValid(str)) { result.add(str); } } else { if (numF > 0) { //添加"(", 并修改传入参数 String newStrF = str + "("; createString(result, newStrF, numF - 1, numB); } if (numB > 0) { //添加")", 并修改传入参数 String newStrB = str + ")"; createString(result, newStrB, numF, numB - 1); } } } //判断是否有效 private boolean isValid(String str) { boolean result = true; Stack<Character> stack = new Stack<>(); for (int i = 0; i < str.length(); ++i) { if (str.charAt(i) == '(') { stack.push('('); } else { if (!stack.empty() && stack.peek() == '(') { stack.pop(); } else { result = false; break; } } } return stack.empty() && result; }}
0 0
- 个人记录-LeetCode 22. Generate Parentheses
- [LeetCode]22.Generate Parentheses
- LeetCode --- 22. Generate Parentheses
- LeetCode 22.Generate Parentheses
- [Leetcode] 22. Generate Parentheses
- 【LeetCode】22.Generate Parentheses
- [leetcode] 22.Generate Parentheses
- 【leetcode】22. Generate Parentheses
- Leetcode-22.Generate Parentheses
- [leetcode] 22. Generate Parentheses
- 22. Generate Parentheses LeetCode
- leetcode 22. Generate Parentheses
- [LeetCode]22. Generate Parentheses
- leetcode 22. Generate Parentheses
- leetcode 22. Generate Parentheses
- LeetCode 22. Generate Parentheses
- [LeetCode]22. Generate Parentheses
- LeetCode *** 22. Generate Parentheses
- Bootstrap组件--下拉菜单
- HTML5新增的属性列表
- Linux 各种安装包
- C语言输出一个数二进制序列的奇数位和偶数位
- data function, c_str() and strcpy_s()
- 个人记录-LeetCode 22. Generate Parentheses
- 编写连接数据库的工具类
- Linux下安装和卸载JDK
- “玲珑杯”ACM比赛 Round #4 A -- chess play
- 彻底入门OkHttp使用——官方教程解析
- 14.6.1 InnoDB Startup Configuration 启动配置
- 计算机执行指令的过程
- The packaging for this project did not assign a file to the build artifact
- Java初学笔记