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

2021-10-09 14:30:42 字數 1189 閱讀 6368

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

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

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

示例 1:

輸入:"())"

輸出:1

示例 2:

輸入:"((("

輸出:3

示例 3:

輸入:"()"

輸出:0

示例 4:

輸入:"()))(("

輸出:4

根據題目描述可知,括號有效的規則是每乙個(都有乙個對應的),但不要求左右括號是相鄰的。因此,只需要在新增了()後使得字串中它們的數量相等即可。

使用兩個變數leftright來表示新增左括號和右括號的數量,遍歷整個字串:

遍歷結束後,返回left + right即滿足要求的最少新增的括號數。

class

solution

:def

minaddtomakevalid

(self, s:

str)

->

int:

ifnot s or s =='':

return

0 left, right =0,

0for i in

list

(s):

if i ==

'(':

right +=

1if i ==

')':

right -=

1if right ==-1

: right =

0 left +=

1return left + right

921 使括號有效的最少新增

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

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

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

LeetCode921 使括號有效的最少新增

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