思路
如果已知n-1的有效括号数量,则第n个有效括号可以选择n-1的某个括号序列中的位置进行插入从而生成新的括号序列,如
n=1时,只有一个序列['()']
n=2时,拿到序列(),分别在其左、中、右的位置插入新的有效序列,为()()、(())、()(),此时发现重复,这可以使用Set结构来天然去重,得到的结果为['()()','(())']
n=3时,拿到序列()(),分别在*(*)*(*)*星号标记的位置插入新的有效序列,为()()()、(())()、()()()、()(())、()()(),去除重复结果为['()()()','(())()','()(())']
实现
网友评论