#YHM12001. 括号生成

括号生成

括号生成

题目描述

数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。有效括号组合需满足:左括号必须以正确的顺序闭合。

输入格式

一个整数n,表示括号的对数,其中1 <= n <= 10

输出格式

按行输出所有有效的括号组合,每行一个组合。按左括号优先的顺序输出。

示例

示例输入1

3

示例输出1

((()))
(()())
(())()
()(())
()()()

示例输入2

1

示例输出2

()

提示

可以使用递归的方法来解决这个问题。递归过程中,通过记录左括号和右括号的剩余数量来控制生成过程。 每次递归时,有两种选择:

  1. 如果左括号的剩余数量大于0,可以添加一个左括号,然后继续递归。
  2. 如果右括号的剩余数量大于左括号的剩余数量,可以添加一个右括号,然后继续递归。 当左括号和右括号的剩余数量都为0时,表示生成了一个有效的括号组合。