代码随想录第十一天|20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值

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]));

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容