Algorithm
lc856_括号的分数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
#include <bits/stdc++.h> using namespace std;
class Solution { public: int scoreOfParentheses(string s) { vector<int> tmp_sum; int ans = 0; stack<char> chs; for (int i = 0; i < s.length(); i++) { if (s[i] == '(') { chs.push(s[i]); } else { if (chs.top() == '(') { chs.pop(); tmp_sum.push_back(1); while (!chs.empty() && chs.top() == '#') { int len = tmp_sum.size(); tmp_sum[len - 2] += tmp_sum[len - 1]; chs.pop(); tmp_sum.pop_back(); } chs.push('#'); } else if (chs.top() == '#') { chs.pop(); chs.pop(); int len = tmp_sum.size(); tmp_sum[len - 1] *= 2; while (!chs.empty() && chs.top() == '#') { int len = tmp_sum.size(); tmp_sum[len - 2] += tmp_sum[len - 1]; chs.pop(); tmp_sum.pop_back(); } chs.push('#'); } } } return tmp_sum[0]; } };
int main() { Solution sol; printf("Ans: %d \n", sol.scoreOfParentheses(string("()"))); cout << sol.scoreOfParentheses("(())") << endl; cout << sol.scoreOfParentheses("(())") << endl; cout << sol.scoreOfParentheses("(()(()))") << endl;
return 0; }
|
Review-不该作弊的真正原因以及为啥不该互相出卖和拖累
不要作弊,损害同学的排名不是主要关键问题,关键问题是:
- 会让周围变成竞争,而不是互帮互助
- 会让你形成一个作弊的坏习惯,会让你以后无法做出一些好的成就,无法做出出色的工作,因为那里没法作弊
背叛和卖队友求荣只会让世界变成恶性竞争的坏地方(以前的汉奸),只有相互帮助才能创造一个更好的世界(入狱但团结一致的队友们)
–上面的review材料来自耗子叔的一条推文
Tips
solidity入门教程
https://wtf.academy/solidity-start/
Share
g++编译带-g
,可以在gdb的时候能找到源文件
1 2
| g++ A.cpp -o A.o -g gdb A.o
|