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.ABhas scoreA + B, whereAandBare balanced parentheses strings.(A)has score2 * A, whereAis 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 <= 50sconsists of only'('and')'.sis 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 }