力扣-921.使括号有效的最少添加

本文最后更新于:2022年10月4日 下午

题目描述

第一张图
这个题目描述我只能说呃呃,其实就是括号匹配成立问题。再丢个实例就很明白了:

1
2
Input: s = "()))(("
Output: 4

实现

1
2
3
4
5
6
7
8
9
10
11
12
class Solution:
def minAddToMakeValid(self, s: str) -> int:
flag = 0
result = 0
for bracket in s[::-1]:
if bracket == '(' and flag > 0:
flag -= 1
elif bracket == '(':
result += 1
else:
flag += 1
return result + flag

执行用时:44 ms, 在所有 Python3 提交中击败了17.39%的用户
内存消耗:14.9 MB, 在所有 Python3 提交中击败了78.09%的用户
只能说不是很理想捏~
典型的(简单)贪心,上面代码我还把字符串反过来了,其实并不需要,但是我比较笨

小声嘀咕

我趣家人们,少一个切片操作直接:

执行用时:36 ms, 在所有 Python3 提交中击败了74.09%的用户
内存消耗:14.8 MB, 在所有 Python3 提交中击败了的用户
我是珍珠啊
可恶我甚至看见了一个利用replace逃课的方法,这么做真的是太可恶了!


这里有一只爱丽丝

希望本文章能够帮到您~


力扣-921.使括号有效的最少添加
https://map1e-g.github.io/2022/10/04/leetcode-921/
作者
MaP1e-G
发布于
2022年10月4日
许可协议