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

2021-09-19 20:45:22 字數 790 閱讀 1263

描述

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

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

它是乙個空字串,或者

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

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

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

示例 1:

輸入:"())"

輸出:1

示例 2:

輸入:"((("

輸出:3

示例 3:

輸入:"()"

輸出:0

示例 4:

輸入:"()))(("

輸出:4

s.length <= 1000

s 只包含 『(』 和 『)』 字元。

思路解法一:

遇到左括號入棧

遇到右括號

若棧不為空且棧頂為左括號,出棧乙個元素

否則(棧為空或棧頂為右括號),入棧

class

solution

}return st.

size()

;}};

解法二:

class

solution

return left+res;

//加上最後沒有被消掉的左括號}}

;

LeetCode921 使括號有效的最少新增

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