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

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

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:

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

[Solution]

使用递归,从空字符串开始构造。

假设当前已经构造的是str, 剩余左右括号left, right:

如果left > 0, 说明还有左括号,可以直接加入左括号

如果left < right, 说明剩余右括号且个数大于左括号,可以放入右括号

1 vector
generateParenthesis(int n) 2 { 3 vector
result; 4 generate(result, "", n, n); 5 6 return result; 7 } 8 9 void generate(vector
&result, string line, int left, int right)10 {11 if (left == 0 && right == 0)12 {13 result.push_back(line);14 return;15 }16 17 if (left > 0)18 generate(result, line + "(", left - 1, right);19 20 if (left < right)21 generate(result, line + ")", left, right - 1);22 }

 

转载于:https://www.cnblogs.com/ym65536/p/4240244.html

你可能感兴趣的文章
LeetCode 1101. The Earliest Moment When Everyone Become Friends
查看>>
LeetCode 1135. Connecting Cities With Minimum Cost
查看>>
LeetCode 1102. Path With Maximum Minimum Value
查看>>
LeetCode 1061. Lexicographically Smallest Equivalent String
查看>>
LeetCode 841. Keys and Rooms
查看>>
LeetCode 1043. Partition Array for Maximum Sum
查看>>
LeetCode 923. 3Sum With Multiplicity
查看>>
LeetCode 750. Number Of Corner Rectangles
查看>>
LeetCode 983. Minimum Cost For Tickets
查看>>
LeetCode 723. Candy Crush
查看>>
LeetCode 881. Boats to Save People
查看>>
LeetCode 334. Increasing Triplet Subsequence
查看>>
LeetCode 877. Stone Game
查看>>
LeetCode 712. Minimum ASCII Delete Sum for Two Strings
查看>>
LeetCode 931. Minimum Falling Path Sum
查看>>
LeetCode 718. Maximum Length of Repeated Subarray
查看>>
LeetCode 446. Arithmetic Slices II - Subsequence
查看>>
LeetCode 740. Delete and Earn
查看>>
LeetCode 813. Largest Sum of Averages
查看>>
LeetCode 1143. Longest Common Subsequence
查看>>