leetcode 856 括號的分數

2021-09-12 20:52:11 字數 1108 閱讀 8631

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

()得 1 分。

aba + 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 是平衡括號字串,且只含有...