对于括号的题,核心基本都是: "一个字符串是合法的括号组合"的*充分必要*条件是: 1. 字符串中开口数等于闭口数 (这是废话) 2. 字符串的所有prefix都满足: 开口数>=闭口数 举个栗子,比如 "()(())": prefix: "(", "()", "()(", "()((", "()(()", "()(())". 那么对与这道题,为满足1,2, 每一个位置可以有的permutation就是: 1. 如果有多余的开口 -> 可以选开口 2. 如果有多余未闭合的开口 -> 可以选闭口 剩下的就是正常的递归+回溯了 时间: O(2^n), 每一位最多2个permuta...