スコアLeetCode 856ブラケット(括弧のスコア)

856ブラケットは得点
括弧の856得点を

タイトル説明では
、文字列のスコアは以下のルールで計算され、バランスの取れた括弧文字列Sを考えます:

  • (1)点。
  • A及びBは、バランスのとれた括弧文字列であることを特徴とする請求+ B AB点は、得られます。
  • Aがバランス括弧文字列であり、(A)2つの* A点は、得られます。

LeetCode 括弧の856得点中等

例1:

入力: "()"
出力: 1

例2:

入力: "(())"
出力: 2

例3:

入力: "()()"
出力: 2

例4:

入力: "(()(()))"
出力: 6

ヒント:

  1. Sは、バランスのとれた括弧文字列であり、のみを含む(と)。
  2. 2 <= S.length <= 50

Java実装

import java.util.Stack;

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

参考資料

おすすめ

転載: www.cnblogs.com/hglibin/p/10988617.html