856. Score of Parentheses
Given a balanced parentheses string S, compute the score of the string based on the following rule:
()has score 1ABhas scoreA + B, where A and B are balanced parentheses strings.(A)has score2 * 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:
Sis a balanced parentheses string, containing only(and).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

浙公网安备 33010602011771号