Skip to content

Commit 38723ab

Browse files
authored
Update 301-remove-invalid-parentheses.js
1 parent 2a8c017 commit 38723ab

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

301-remove-invalid-parentheses.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,37 @@
1+
/**
2+
* @param {string} s
3+
* @return {string[]}
4+
*/
5+
const removeInvalidParentheses = function(s) {
6+
const res = []
7+
helper(s, 0, 0, ['(', ')'])
8+
return res
9+
10+
function helper(str, lastI, lastJ, pair) {
11+
let openNum = 0, closeNum = 0
12+
for(let i = lastI; i < str.length; i++) {
13+
if(str[i] === pair[0]) openNum++
14+
if(str[i] === pair[1]) closeNum++
15+
if(closeNum > openNum) {
16+
for(let j = lastJ; j <= i; j++) {
17+
if(str[j] === pair[1] && (j === lastJ || str[j - 1] !== pair[1])) {
18+
helper(str.slice(0, j) + str.slice(j + 1), i, j, pair)
19+
}
20+
}
21+
return
22+
}
23+
}
24+
let rev = str.split('').reverse().join('')
25+
if(pair[0] === '(') {
26+
helper(rev, 0, 0, [')', '('])
27+
} else {
28+
res.push(rev)
29+
}
30+
}
31+
};
32+
33+
// another
34+
135
/**
236
* @param {string} s
337
* @return {string[]}

0 commit comments

Comments
 (0)