LeetCode 856 括號的分值

2021-08-30 19:50:03 字數 1035 閱讀 4470

1 題目描述

給定乙個以括號組成的平衡字串表示式,基於如下規則計算括號表示式的分值。

1)()的分值為1;

2)ab的分值為a+b,其中a與b均是平衡字串;

3)(a)的分值為2*a,其中a是平衡字串。

例子1:

輸入:"()"

輸出:1

例子2:

輸入:"(())"

輸出:2

例子3:

輸入:"()()"

輸出:2

例子4:

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

輸出:6

注:1)字串僅由'('或')'組成;

2)2 <= len(s) <= 50

題目出處:

2 解決思路

1)遍歷字元陣列;

1.1)若當前字元與下個字元是'((',則值為「2*(擴起的字串值)+擴起字串後面字串的值」;

1.2)若當前字元與下個字元是'()',則值為「1+後面字串的值」。

3)至字元陣列最後乙個字元結束。

3 golang實現**

func scoreofparentheses(s string) int  else   

if 0 == depth

sub += string(chars[i])

} if len(chars)-1 == i

return 2*scoreofparentheses(sub) + scoreofparentheses(s[i+1:])

} else if '(' == c && ')' == next else

if 0 == depth

sub += string(chars[i])

} return 1 + scoreofparentheses(sub)

} }

return r

}

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

leetcode856 括號的分數

給定乙個平衡括號字串 s,按下述規則計算該字串的分數 得 1 分。ab 得 a b 分,其中 a 和 b 是平衡括號字串。a 得 2 a 分,其中 a 是平衡括號字串。示例 1 輸入 輸出 1 示例 2 輸入 輸出 2 示例 3 輸入 輸出 2 示例 4 輸入 輸出 6 s 是平衡括號字串,且只含有...