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