給定乙個平衡括號字串s
,按下述規則計算該字串的分數:
示例 1:
輸入: "()"示例 2:輸出: 1
輸入: "(())"示例 3:輸出: 2
輸入: "()()"示例 4:輸出: 2
輸入: "(()(()))"輸出: 6
s
是平衡括號字串,且只含有(
和)
。
2 <= s.length <= 50
我們可以使用遞迴來解決這個問題。通過分析題目,我們發現有三種情況:
比如:score("()(()())")
=score("()")+score("(()())")
=1+2*score("()()")
=1+2*(score("()")+score("()"))
=1+2*2
=5
說明:我們在**中怎麼來識別,(()())這種情況呢,如果從最左邊到倒數第二位是不平衡的,那麼加上最後一位一定是平衡的,這也說明,第一位和最後一位是乙個大括號,那當然是case1這種情況。
class solutionpublic int score(string s,int left,int right)
return 2*score(s,left+1,right-1);}}
Leetcode 括號的分數 棧
leetcode 856.括號的分數 給定乙個平衡括號字串 s,按下述規則計算該字串的分數 得 1 分。ab 得 a b 分,其中 a 和 b 是平衡括號字串。a 得 2 a 分,其中 a 是平衡括號字串。python 實現 class solution object defscoreofparen...
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,時入棧,不然出棧,若棧頂元...