856. Score of Parentheses
Medium
50221FavoriteShare
Given a balanced parentheses string S
, compute the score of the string based on the following rule:
()
has score 1AB
has 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
class Solution {
public:
int scoreOfParentheses(string S) {
int Layer = 0;int Result = 0;
char LastCharacter;
for(char s : S){
if(s == '('){
Layer++;//层数增加
}
else{
Layer--;
if(LastCharacter == '('){
Result += 1 << Layer;
}
}
LastCharacter = s;
}
return Result;
}
};