leetcode: 856. 括號的分數
給定乙個平衡括號字串 s,按下述規則計算該字串的分數:() 得 1 分。ab 得 a + b 分,其中 a 和 b 是平衡括號字串。(a) 得 2 * a 分,其中 a 是平衡括號字串。python**實現:
時間複雜度:o(n) ,其中 n 是字串 s 的長度。class
solution
(object):
defscoreofparentheses
(self, s)
: ans, deep =0,
0for i, x in
enumerate
(s):
if x ==
'(':
deep +=
1else
: deep -=
1if s[i-1]
=='('
: ans +=
1<< deep
return ans
空間複雜度:o(1)。
python**實現:
時間複雜度:o(n),其中 n是字串 s 的長度。class
solution
:def
scoreofparentheses
(self, s:
str)
->
int:
count =
0 stack =[0
]#the score of the current frame
for x in s:
if x ==
'(':0)
else
: count = stack.pop(
) stack[-1
]+=1if count ==
0else
2*count
return stack.pop(
)
空間複雜度:o(n),為棧的大小。
LeetCode 括號的分數 856
給定乙個平衡括號字串s,按下述規則計算該字串的分數 示例 1 輸入 輸出 1 示例 2 輸入 輸出 2 示例 3 輸入 輸出 2 示例 4 輸入 輸出 6 s是平衡括號字串,且只含有 和 2 s.length 50 我們可以使用遞迴來解決這個問題。通過分析題目,我們發現有三種情況 比如 score ...
leetcode 856 括號的分數
給定乙個平衡括號字串s,按下述規則計算該字串的分數 示例 1 輸入 輸出 1示例 2 輸入 輸出 2示例 3 輸入 輸出 2示例 4 輸入 輸出 6 s是平衡括號字串,且只含有 和 2 s.length 50 很明顯,這一題可以用棧來解決。我們把單獨乙個左括號算作0分,遍歷字串s,遇到左括號就直接算...
leetcode 856 括號的分數
給定乙個平衡括號字串s,按下述規則計算該字串的分數 得 1 分。ab得a b分,其中 a 和 b 是平衡括號字串。a 得2 a分,其中 a 是平衡括號字串。示例 1 輸入 輸出 1示例 2 輸入 輸出 2示例 3 輸入 輸出 2示例 4 輸入 輸出 6 模擬棧,遍歷字串s,時入棧,不然出棧,若棧頂元...