Skip to content

Commit dcd8d7d

Browse files
authored
feat: add js solution to lcci problem: No.08.09.Bracket (doocs#377)
* feat: add javascript solution to lcci problem: No.08.09.Bracket * fix: fix solution to lcci problem: No.08.09.Bracket * chore: add open browser of script
1 parent 7ebb6ef commit dcd8d7d

File tree

4 files changed

+83
-7
lines changed

4 files changed

+83
-7
lines changed

lcci/08.09.Bracket/README.md

+33-6
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,19 @@
2525

2626
<!-- 这里可写通用的实现逻辑 -->
2727

28-
<!-- tabs:start -->
29-
30-
### **Python3**
31-
32-
<!-- 这里可写当前语言的特殊实现逻辑 -->
33-
3428
递归求解。其中,`left` 表示剩余的 `(``right` 表示剩余的 `)`
3529

3630
-`left` > `right` 时,说明 state 中 `(` 少于 `)`,不是合法组合,直接剪枝;
3731
-`right` == 0 时,说明 state 组合完毕;
3832
-`left` > 0 时,此时可往 state 添加一个 `(`
3933
-`right` > 0 时,此时可往 state 添加一个 `)`
4034

35+
<!-- tabs:start -->
36+
37+
### **Python3**
38+
39+
<!-- 这里可写当前语言的特殊实现逻辑 -->
40+
4141
```python
4242
class Solution:
4343
def generateParenthesis(self, n: int) -> List[str]:
@@ -89,6 +89,33 @@ class Solution {
8989
}
9090
```
9191

92+
### **JavaScript**
93+
94+
```js
95+
/**
96+
* @param {number} n
97+
* @return {string[]}
98+
*/
99+
var generateParenthesis = function(n) {
100+
let res = [];
101+
dfs(n, 0, 0, '', res);
102+
return res;
103+
};
104+
105+
function dfs(n, left, right, prev, res) {
106+
if (left == n && right == n) {
107+
res.push(prev);
108+
return;
109+
}
110+
if (left < n) {
111+
dfs(n, left + 1, right, prev + '(', res);
112+
}
113+
if (right < left) {
114+
dfs(n, left, right + 1, prev + ')', res);
115+
}
116+
}
117+
```
118+
92119
### **...**
93120

94121
```

lcci/08.09.Bracket/README_EN.md

+27
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,33 @@ class Solution {
8282
}
8383
```
8484

85+
### **JavaScript**
86+
87+
```js
88+
/**
89+
* @param {number} n
90+
* @return {string[]}
91+
*/
92+
var generateParenthesis = function(n) {
93+
let res = [];
94+
dfs(n, 0, 0, '', res);
95+
return res;
96+
};
97+
98+
function dfs(n, left, right, prev, res) {
99+
if (left == n && right == n) {
100+
res.push(prev);
101+
return;
102+
}
103+
if (left < n) {
104+
dfs(n, left + 1, right, prev + '(', res);
105+
}
106+
if (right < left) {
107+
dfs(n, left, right + 1, prev + ')', res);
108+
}
109+
}
110+
```
111+
85112
### **...**
86113

87114
```

lcci/08.09.Bracket/Solution.js

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/**
2+
* @param {number} n
3+
* @return {string[]}
4+
*/
5+
var generateParenthesis = function(n) {
6+
let res = [];
7+
dfs(n, 0, 0, '', res);
8+
return res;
9+
};
10+
11+
function dfs(n, left, right, prev, res) {
12+
if (left == n && right == n) {
13+
res.push(prev);
14+
return;
15+
}
16+
if (left < n) {
17+
dfs(n, left + 1, right, prev + '(', res);
18+
}
19+
if (right < left) {
20+
dfs(n, left, right + 1, prev + ')', res);
21+
}
22+
}

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"scripts": {
3-
"dev": "docsify serve"
3+
"dev": "docsify serve --open"
44
},
55
"dependencies": {
66
"docsify-cli": "^4.4.3"

0 commit comments

Comments
 (0)