Welcome to Subscribe On Youtube
856. Score of Parentheses
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.
Solutions
-
class Solution { public int scoreOfParentheses(String s) { int ans = 0, d = 0; for (int i = 0; i < s.length(); ++i) { if (s.charAt(i) == '(') { ++d; } else { --d; if (s.charAt(i - 1) == '(') { ans += 1 << d; } } } return ans; } }
-
class Solution { public: int scoreOfParentheses(string s) { int ans = 0, d = 0; for (int i = 0; i < s.size(); ++i) { if (s[i] == '(') { ++d; } else { --d; if (s[i - 1] == '(') { ans += 1 << d; } } } return ans; } };
-
class Solution: def scoreOfParentheses(self, s: str) -> int: ans = d = 0 for i, c in enumerate(s): if c == '(': d += 1 else: d -= 1 if s[i - 1] == '(': ans += 1 << d return ans
-
func scoreOfParentheses(s string) int { ans, d := 0, 0 for i, c := range s { if c == '(' { d++ } else { d-- if s[i-1] == '(' { ans += 1 << d } } } return ans }