LeetCode921 使括號有效的最少新增

2021-09-27 15:16:51 字數 1226 閱讀 5025

給定乙個由 『(』 和 『)』 括號組成的字串 s,我們需要新增最少的括號( 『(』 或是 『)』,可以在任何位置),以使得到的括號字串有效。

從形式上講,只有滿足下面幾點之一,括號字串才是有效的:

它是乙個空字串,或者

它可以被寫成 ab (a 與 b 連線), 其中 a 和 b 都是有效字串,或者

它可以被寫作 (a),其中 a 是有效字串。

給定乙個括號字串,返回為使結果字串有效而必須新增的最少括號數。

示例 4:

輸入:"()))(("

輸出:4

s.length <= 1000

s 只包含 '(' 和 ')' 字元。

原題鏈結;

如果前面有括號,現在是,就可以形成一對括號。否則累計的個數。

class solution:

def minaddtomakevalid(self, s):

""":type s: str

:rtype: int

"""right, left = 0, 0

res = 0

for s in s:

if s == '(':

left += 1

else:

right += 1

if left >= right:

left = left-right

right = 0

else:

res += right

right = 0

return res + left

簡潔版:

class solution:

def minaddtomakevalid(self, s):

""":type s: str

:rtype: int

"""right, left = 0, 0

for s in s:

if s == '(':

left += 1

else:

if left <=0:

right +=1

else:

left -= 1

return left + right

leetcode 921 使括號有效的最少新增 棧

描述 給定乙個由 和 括號組成的字串 s,我們需要新增最少的括號 或是 可以在任何位置 以使得到的括號字串有效。從形式上講,只有滿足下面幾點之一,括號字串才是有效的 它是乙個空字串,或者 它可以被寫成 ab a 與 b 連線 其中 a 和 b 都是有效字串,或者 它可以被寫作 a 其中 a 是有效字...

921 使括號有效的最少新增

給定乙個由 和 括號組成的字串 s,我們需要新增最少的括號 或是 可以在任何位置 以使得到的括號字串有效。從形式上講,只有滿足下面幾點之一,括號字串才是有效的 它是乙個空字串,或者 它可以被寫成 ab a 與 b 連線 其中 a 和 b 都是有效字串,或者 它可以被寫作 a 其中 a 是有效字串。給...

921 使括號有效的最少新增 python

給定乙個由 和 括號組成的字串 s,我們需要新增最少的括號 或是 可以在任何位置 以使得到的括號字串有效。從形式上講,只有滿足下面幾點之一,括號字串才是有效的 給定乙個括號字串,返回為使結果字串有效而必須新增的最少括號數。示例 1 輸入 輸出 1示例 2 輸入 輸出 3示例 3 輸入 輸出 0示例 ...