LeetCode 括號的分數 856

2022-03-11 01:16:24 字數 842 閱讀 2864

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

示例 1:

輸入: "()"

輸出: 1

示例 2:

輸入: "(())"

輸出: 2

示例 3:

輸入: "()()"

輸出: 2

示例 4:

輸入: "(()(()))"

輸出: 6

s是平衡括號字串,且只含有()

2 <= s.length <= 50

我們可以使用遞迴來解決這個問題。通過分析題目,我們發現有三種情況:

比如:score("()(()())")

=score("()")+score("(()())")

=1+2*score("()()")

=1+2*(score("()")+score("()"))

=1+2*2

=5

說明:我們在**中怎麼來識別,(()())這種情況呢,如果從最左邊到倒數第二位是不平衡的,那麼加上最後一位一定是平衡的,這也說明,第一位和最後一位是乙個大括號,那當然是case1這種情況。

class solution 

public 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,時入棧,不然出棧,若棧頂元...