856. Score of Parentheses

Difficulty:
Related Topics:
Similar Questions:

    Problem

    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:

      Example 1:

    Input: s = "()"
    Output: 1
    

    Example 2:

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

    Example 3:

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

      Constraints:

    Solution (Java)

    class Solution {
        public int scoreOfParentheses(String s) {
            Deque<Integer> stack = new ArrayDeque<>();
            for (int i = 0; i < s.length(); i++) {
                if (s.charAt(i) == '(') {
                    stack.push(-1);
                } else {
                    int curr = 0;
                    while (stack.peek() != -1) {
                        curr += stack.pop();
                    }
                    stack.pop();
                    stack.push(curr == 0 ? 1 : curr * 2);
                }
            }
            int score = 0;
            while (!stack.isEmpty()) {
                score += stack.pop();
            }
            return score;
        }
    }
    

    Explain:

    nope.

    Complexity: