leetcode 856 括號的分數

2021-09-01 10:53:08 字數 922 閱讀 1737

給定乙個平衡括號字串s,按下述規則計算該字串的分數:

示例 1:

輸入:"()"輸出:1
示例 2:

輸入:"(())"輸出:2
示例 3:

輸入:"()()"輸出:2
示例 4:

輸入:"(()(()))"輸出:6

s是平衡括號字串,且只含有()

2 <= s.length <= 50

很明顯,這一題可以用棧來解決。

我們把單獨乙個左括號算作0分,遍歷字串s,遇到左括號就直接算0分進棧,遇到右括號,先判斷棧頂是否為0,即是否為左括號,是的話就說明這是乙個『()』,那麼可以將棧頂的0彈出,再壓1分進去,如果棧頂非0,則說明是'(ab)',那麼不斷地將棧頂的分數取出,直到棧頂是0,即左括號為止,然後將該0彈出,並將取出的分數乘2再壓棧。

最後遍歷棧,將所有的分數加起來就是最終的結果。

class solution 

else

s.pop();

s.push(2*tmp);

}else}}

int res=0;

while(!s.empty())

return res;

}}

LeetCode 856 括號的分值

1 題目描述 給定乙個以括號組成的平衡字串表示式,基於如下規則計算括號表示式的分值。1 的分值為1 2 ab的分值為a b,其中a與b均是平衡字串 3 a 的分值為2 a,其中a是平衡字串。例子1 輸入 輸出 1 例子2 輸入 輸出 2 例子3 輸入 輸出 2 例子4 輸入 輸出 6 注 1 字串僅...

leetcode 856 括號的分數

給定乙個平衡括號字串s,按下述規則計算該字串的分數 得 1 分。ab得a b分,其中 a 和 b 是平衡括號字串。a 得2 a分,其中 a 是平衡括號字串。示例 1 輸入 輸出 1示例 2 輸入 輸出 2示例 3 輸入 輸出 2示例 4 輸入 輸出 6 模擬棧,遍歷字串s,時入棧,不然出棧,若棧頂元...

leetcode856 括號的分數

給定乙個平衡括號字串 s,按下述規則計算該字串的分數 得 1 分。ab 得 a b 分,其中 a 和 b 是平衡括號字串。a 得 2 a 分,其中 a 是平衡括號字串。示例 1 輸入 輸出 1 示例 2 輸入 輸出 2 示例 3 輸入 輸出 2 示例 4 輸入 輸出 6 s 是平衡括號字串,且只含有...