File tree 1 file changed +92
-0
lines changed
1 file changed +92
-0
lines changed Original file line number Diff line number Diff line change
1
+ ![ ] ( https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL2Nob2NvbGF0ZTE5OTkvY2RuL2ltZy8yMDIwMDgyODE0NTUyMS5qcGc?x-oss-process=image/format,png )
2
+ > 仰望星空的人,不应该被嘲笑
3
+
4
+ ## 题目描述
5
+ 给定一个由` '(' ` 和` ')' ` 括号组成的字符串 ` S ` ,我们需要添加最少的括号` ( '(' 或是 ')' ` ,可以在任何位置),以使得到的括号字符串有效。
6
+
7
+ 从形式上讲,只有满足下面几点之一,括号字符串才是有效的:
8
+
9
+ 它是一个空字符串,或者
10
+ 它可以被写成 ` AB ` (A 与 B 连接), 其中 A 和 B 都是有效字符串,或者
11
+ 它可以被写作 ` (A) ` ,其中 A 是有效字符串。
12
+ 给定一个括号字符串,返回为使结果字符串有效而必须添加的最少括号数。
13
+
14
+
15
+
16
+ 示例 1:
17
+
18
+ ``` javascript
19
+ 输入:" ())"
20
+ 输出:1
21
+ ```
22
+
23
+ 示例 2:
24
+
25
+ ``` javascript
26
+ 输入:" ((("
27
+ 输出:3
28
+ ```
29
+
30
+ 示例 3:
31
+
32
+ ``` javascript
33
+ 输入:" ()"
34
+ 输出:0
35
+ ```
36
+
37
+ 示例 4:
38
+
39
+ ``` javascript
40
+ 输入:" ()))(("
41
+ 输出:4
42
+ ```
43
+
44
+ 提示:
45
+
46
+ ``` javascript
47
+ S .length <= 1000
48
+ S 只包含 ' (' 和 ' )' 字符。
49
+ ```
50
+
51
+ 来源:力扣(LeetCode)
52
+ 链接:https://leetcode-cn.com/problems/minimum-add-to-make-parentheses-valid
53
+ 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
54
+
55
+
56
+ ## 解题思路
57
+ 借助一个新栈,然后遍历当前字符串,如果当前栈顶元素和目前字符括号匹配,则弹出栈顶元素,否则进行入栈操作,最后需要的括号数即为栈剩余的元素个数
58
+
59
+ ``` javascript
60
+ /**
61
+ * @param {string} S
62
+ * @return {number}
63
+ */
64
+ var minAddToMakeValid = function (S ) {
65
+ // 长度为0,无须添加
66
+ if (! S .length ) return 0
67
+ let stack = []
68
+ for (let i= 0 ;i< S .length ;i++ ){
69
+ let ch = S [i]
70
+ // 如果当前栈顶元素和目前字符括号匹配,则弹出栈顶元素
71
+ if (ch === ' )' && stack[stack .length - 1 ] === ' (' ) stack .pop ()
72
+ else stack .push (ch)
73
+ }
74
+ // 栈的剩余元素个数,即需要的括号数
75
+ return stack .length
76
+ };
77
+ ```
78
+
79
+ ## 最后
80
+ 文章产出不易,还望各位小伙伴们支持一波!
81
+
82
+ 往期精选:
83
+
84
+ <a href =" https://github.com/Chocolate1999/Front-end-learning-to-organize-notes " >小狮子前端の笔记仓库</a >
85
+
86
+ <a href =" https://yangchaoyi.vip/ " >访问超逸の博客</a >,方便小伙伴阅读玩耍~
87
+
88
+ ![ ] ( https://img-blog.csdnimg.cn/2020090211491121.png#pic_center )
89
+
90
+ ``` javascript
91
+ 学如逆水行舟,不进则退
92
+ ```
You can’t perform that action at this time.
0 commit comments