zoukankan      html  css  js  c++  java
  • 856. Score of Parentheses

    Given a balanced parentheses string S, compute the score of the string 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: "()"
    Output: 1
    

    Example 2:

    Input: "(())"
    Output: 2
    

    Example 3:

    Input: "()()"
    Output: 2
    

    Example 4:

    Input: "(()(()))"
    Output: 6
    

    Note:

    1. S is a balanced parentheses string, containing only ( and ).
    2. 2 <= S.length <= 50
    class Solution {
        public int scoreOfParentheses(String S) {
            Stack<Integer> stack = new Stack();
            int cur = 0;
            for(char c : S.toCharArray()) {
                if(c == '(') {
                    stack.push(cur);
                    cur = 0;
                }
                else {
                    cur = stack.pop() + Math.max(1, 2 * cur);
                }
            }
            return cur;
        }
    }

    https://leetcode.com/problems/score-of-parentheses/discuss/141777/C%2B%2BJavaPython-O(1)-Space

  • 相关阅读:
    简单二分求解(木板补漏问题)
    switch语句和for循环
    JAVA运算符和优先级
    JAVA数据类型
    JAVA基础
    JAVA开发环境
    linux配置IP地址
    LVM逻辑分区
    用户和用户组
    第一天
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/14444879.html
Copyright © 2011-2022 走看看