Given a balanced parentheses string S, compute the score of the string based on the following rule:
() has score 1
AB has score A + B, where A and B are balanced parentheses strings.
(A) has score 2 * A, where A is a balanced parentheses string.
Example 1:
Input: “()”
Output: 1
Example 2:
Input: “(())”
Output: 2
Example 3:
Input: “()()”
Output: 2
Example 4:
Input: “(()(()))”
Output: 6
Note:
- S is a balanced parentheses string, containing only ( and ).
- 2 <= S.length <= 50
分析:
1.一个基础()得1分,被括起来是两倍,保证了S一定合法,且S的长度小于50,那么显然随意递归都OK
思路:
S的第一位一定是左括号,找到与之对应的右括号,然后递归即可
即形如 (s1)s2,可写成 func(s1)*2 + func(s2)
1 | class Solution(object): |