#hard 301.Remove Invalid Parentheses
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?).
"()())()" -> ["()()()", "(())()"]
"(a)())()" -> ["(a)()()", "(a())()"]
")(" -> [""]
可以用DFS和BFS
BFS的思想就是,也是要兩個(gè)隊(duì)列的唬渗,因?yàn)榻Y(jié)果中只要求我們減掉最少個(gè)數(shù)的括號(hào)的結(jié)果,而不是所有符合括號(hào)匹配的結(jié)果,所以還是level order traverse
還要有一個(gè)visited來(lái)記錄這個(gè)String是不是已經(jīng)被我們判斷過(guò)的,因?yàn)榕袛噙^(guò)的不能重復(fù)加入的篡帕,從頭到尾遍歷贫悄,如果說(shuō)是除了左括號(hào)右括號(hào)的東西,我們都continue捐晶,否則我們就可以去掉,然后加入queue然后之后用以判斷是否達(dá)標(biāo)妄辩。還有就是我們需要去記錄惑灵,如果這一層一旦有String已經(jīng)達(dá)標(biāo)了那么我們就continue,不會(huì)再往queue里加入下一層的String