給定乙個平衡括號字串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 是平衡括號字串,且只含有...