20. 有效的括号
思路:
分成左括号,各种右括号&&top==对应的左括号四种情况,但注意的是top()需要栈内有元素,为了不报错先在栈内存入一个元素,最后判断条件为栈顶是否为最先存入的元素
看视频后:
可以先通过元素个数判断,奇数返回false。元素是左括号时,push对应的右括号,如果元素相同pop,如果是空或者元素不相同,返回false。
1047. 删除字符串中的所有相邻重复项
思路:
用栈存储字符串,如果栈不为空且栈顶与元素相同就pop,否则push,但不知道怎么转换成string。
看代码后:
1.string result="";result+=stack.top(),还要reverse(result.begin(),result.end())
2.直接用string的back,push_back,pop_back
150. 逆波兰表达式求值
思路:
用栈存储数字,每遇到一个符号则弹出两个元素(有顺序)进行数学运算。怎么将string转化成int?
看代码后:
number.push(stoi(tokens[i]));