Score of Parentheses
Problem Statement - link #
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:
- ”
()” has score 1. ABhas scoreA + B, whereAandBare balanced parentheses strings.(A)has score2 * A, whereAis a balanced parentheses string.
Examples #
Example 1:
Input: s = "()"
Output: 1
Example 2:
Input: s = "(())"
Output: 2
Example 3:
Input: s = "()()"
Output: 2
Constraints #
2 <= s.length <= 50sconsists of only ‘(’ and ‘)’.sis a balanced parentheses string.
Solutions #
class Solution {
public:
int scoreOfParentheses(string s) {
stack<int> st;
int i = 0;
for(auto c : s) {
if(c == '(') {
st.push(i);
i = 0;
}
else {
i = st.top() + max(i*2 ,1);
st.pop();
}
}
return i;
}
};