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 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: 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
    }
    

All Problems

All Solutions