这道题最开始又出现了想一口吃个大胖子的情况—直接找到答案。虽然知道常规的方法不可以 所以考虑了递归。递归的确是个好办法 但是完全不知道该如何去写,去找:递归的参数,外部切入点的初始化,递归内部的写法(尾递归/普通递归)递归的结束点和每次向下的初始化点等等…

正确的想法是:先用暴力解。此时所谓的暴力解,就是将所有的排列情况都列出来,然后再写一个函数去验证其是不是valid parentheses,验证的过程用到了stack.

暴力解虽然可行 但是看起来很蠢 而且仅仅是把所有情况都列出来的时间复杂度 就非常高 达到了指数的级别。
所以我们考虑递归。由于我们不是件简单的统计跟层数有关的东西 而是想把路径都打印出来一样 因此我们要用到backtracking(? 回溯实际上本身就蕴含在递归中间)
https://www.youtube.com/watch?v=sz1qaKt0KGQ
这个老哥讲的很清楚

一点其他的想法:
这种二元符号 就如同boolean 或者任何自定义的二元一样 都应该引起注意 试着从其中找到相应的模式