856. Score of Parentheses
Medium
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.
class Solution:
def scoreOfParentheses(self, s: str) -> int:
stack = []
score = 0
for index, char in enumerate(list(s)):
if char == "(":
stack.append(score)
score = 0
else:
score = stack.pop() + max(score*2, 1)
return score
Solution 2:
class Solution:
def scoreOfParentheses(self, s: str) -> int:
score = 0
par = 0
for index, char in enumerate(list(s)):
if char == "(":
par += 1
else:
par -= 1
if s[index-1] == "(":
score += (1<<par)
return score
Last updated