給定乙個由 『(』 和 『)』 括號組成的字串 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示例 ...