# 删除无效的括号

给你一个由若干括号和字母组成的字符串 s ,删除最小数量的无效括号,使得输入的字符串有效。

返回所有可能的结果。答案可以按 任意顺序 返回。

 

示例 1:

输入:s = "()())()"
输出:["(())()","()()()"]

示例 2:

输入:s = "(a)())()"
输出:["(a())()","(a)()()"]

示例 3:

输入:s = ")("
输出:[""]

 

提示:

## template ```java public class Solution { private Set set; private String input; private int maxLen = 0; public List removeInvalidParentheses(String s) { set = new HashSet<>(); input = s; removeInvalidParentheses(0, "", 0, 0); return new ArrayList<>(set); } private void removeInvalidParentheses(int index, String valid, int leftCount, int rightCount) { if (leftCount < rightCount) { return; } if (index == input.length()) { if (leftCount == rightCount) { if (maxLen < valid.length()) { maxLen = valid.length(); set.clear(); set.add(valid); } else if (maxLen == valid.length()) { set.add(valid); } } return; } char c = input.charAt(index); if (c == '(') { removeInvalidParentheses(index + 1, valid, leftCount, rightCount); removeInvalidParentheses(index + 1, valid + c, leftCount + 1, rightCount); } else if (c == ')') { removeInvalidParentheses(index + 1, valid, leftCount, rightCount); removeInvalidParentheses(index + 1, valid + c, leftCount, rightCount + 1); } else { removeInvalidParentheses(index + 1, valid + c, leftCount, rightCount); } } } ``` ## 答案 ```java ``` ## 选项 ### A ```java ``` ### B ```java ``` ### C ```java ```