# ---
# title: 301. Remove Invalid Parentheses
# id: problem301
# author: Tian Jun
# date: 2020-10-31
# difficulty: Hard
# categories: Depth-first Search, Breadth-first Search
# link: <https://leetcode.com/problems/remove-invalid-parentheses/description/>
# hidden: true
# ---
# 
# Remove the minimum number of invalid parentheses in order to make the input
# string valid. Return all possible results.
# 
# **Note:**  The input string may contain letters other than the parentheses `(`
# and `)`.
# 
# **Example 1:**
# 
#     
#     
#     Input: "()())()"
#     Output: ["()()()", "(())()"]
#     
# 
# **Example 2:**
# 
#     
#     
#     Input: "(a)())()"
#     Output: ["(a)()()", "(a())()"]
#     
# 
# **Example 3:**
# 
#     
#     
#     Input: ")("
#     Output: [""]
#     
# 
# 
## @lc code=start
using LeetCode

## add your code here:
## @lc code=end
