給定乙個平衡括號字串s
,按下述規則計算該字串的分數:
()
得 1 分。
ab
得a + b
分,其中 a 和 b 是平衡括號字串。
(a)
得2 * a
分,其中 a 是平衡括號字串。示例 1:
輸入:"()"輸出:1示例 2:輸入:"(())"輸出:2示例 3:輸入:"()()"輸出:2示例 4:輸入:"(()(()))"輸出:6
模擬棧,遍歷字串s,"("時入棧,不然出棧,若棧頂元素為「(」時 入棧 1,否則就一直出棧直到棧頂為「(」,將所有出棧的元素加和乘2.最後返回棧元素的和。
python
class solution:
def scoreofparentheses(self, s: str) -> int:
st =
for s in s:
if s == '(':
elif st[-1] == '(':
st[-1] = 1
else:
tmp = 0
while st[-1] != '(':
tmp += st.pop()
st[-1] = tmp * 2
return sum(st)
c++(位運算代替乘法)
class solution else
w >>= 1;
}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 輸入 輸出 1示例 2 輸入 輸出 2示例 3 輸入 輸出 2示例 4 輸入 輸出 6 s是平衡括號字串,且只含有 和 2 s.length 50 很明顯,這一題可以用棧來解決。我們把單獨乙個左括號算作0分,遍歷字串s,遇到左括號就直接算...
leetcode856 括號的分數
給定乙個平衡括號字串 s,按下述規則計算該字串的分數 得 1 分。ab 得 a b 分,其中 a 和 b 是平衡括號字串。a 得 2 a 分,其中 a 是平衡括號字串。示例 1 輸入 輸出 1 示例 2 輸入 輸出 2 示例 3 輸入 輸出 2 示例 4 輸入 輸出 6 s 是平衡括號字串,且只含有...