Score of Parentheses

Tags : string, stack, leetcode, cpp, 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:

Examples #

Example 1:

Input: s = "()"
Output: 1

Example 2:

Input: s = "(())"
Output: 2

Example 3:

Input: s = "()()"
Output: 2

Constraints #

Solutions #

class Solution {
public:
    int scoreOfParentheses(string s) {
      stack<int> st;
        int i = 0;
        for(auto c : s)       {
            if(c == '(')           {
                st.push(i);
                i = 0;
            }
            else            {
                i = st.top() + max(i*2 ,1);
                st.pop();
            }
        }
        return i;
    }
};