leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

0856.cpp (734B)


1 // Stack solution
2 class Solution {
3 public:
4 int scoreOfParentheses(const string &s) {
5 stack<int> st;
6 int score = 0;
7 for (const char c : s) {
8 if (c == '(')
9 st.push(score), score = 0;
10 else {
11 score = score ? 2 * score : 1;
12 score += st.top();
13 st.pop();
14 }
15 }
16 return score;
17 }
18 };
20 // O(1) memory solution
21 class Solution {
22 public:
23 int scoreOfParentheses(const string &s) {
24 int res = 0, l = 0;
25 for (int i = 0; i < s.size(); i++) {
26 l += s[i] == '(' ? 1 : -1;
27 if (s[i] == ')' && s[i - 1] == '(') res += 1 << l;
28 }
29 return res;
30 }
31 };