Description
Given a balanced parentheses string s
, return the score of the string.
The score of a balanced parentheses string is based on the following rule:
"()"
has score1
.AB
has scoreA + B
, whereA
andB
are balanced parentheses strings.(A)
has score2 * A
, whereA
is a balanced parentheses string.
Example 1:
Input: s = "()" Output: 1
Example 2:
Input: s = "(())" Output: 2
Example 3:
Input: s = "()()" Output: 2
Constraints:
2 <= s.length <= 50
s
consists of only'('
and')'
.s
is a balanced parentheses string.
Solution
Python3
class Solution:
def scoreOfParentheses(self, s: str) -> int:
stack = []
curr = 0
for x in s:
if x == "(":
stack.append(curr)
curr = 0
else:
curr = stack.pop() + max(curr * 2, 1)
return curr