代码随心录第十天|Leecode232.用栈实现队列 225. 用队列实现栈 20. 有效的括号 1047. 删除字符串中的所有相邻重复项

Leecode 232.用栈实现队列

题目描述:

 思路:需要两个栈一个输入栈,一个输出栈。

在push数据的时候,只要数据放进输入栈就好,但在pop的时候,操作就复杂一些,输出栈如果为空,就把进栈数据全部导入进来(注意是全部导入),再从出栈弹出数据,如果输出栈不为空,则直接从出栈弹出数据就可以了。

最后如何判断队列为空呢?如果进栈和出栈都为空的话,说明模拟的队列为空了

解答:

 

 225. 用队列实现栈

题目链接:https://leetcode.cn/problems/implement-stack-using-queues/description/

题目描述:

 思路:一个队列在模拟栈弹出元素的时候只要将队列头部的元素(除了最后一个元素外) 重新添加到队列尾部,此时再去弹出元素就是栈的顺序了。

解答:

 20. 有效的括号 

题目链接:https://leetcode.cn/problems/valid-parentheses/description/

题目描述:

 思路:三种不匹配结果。

第一种情况,字符串里左方向的括号多余了 ,所以不匹配。

第二种情况,括号没有多余,但是 括号的类型没有匹配上。

第三种情况,字符串里右方向的括号多余了,所以不匹配。

在匹配左括号的时候,右括号先入栈,就只需要比较当前元素和栈顶相不相等就可以了

解答:

 1047. 删除字符串中的所有相邻重复项 

题目链接:https://leetcode.cn/problems/remove-all-adjacent-duplicates-in-string/description/

题目描述:

 思路:栈来存放,那么栈的目的,就是存放遍历过的元素,当遍历当前的这个元素的时候,去栈里看一下我们是不是遍历过相同数值的相邻元素。栈来存放,那么栈的目的,就是存放遍历过的元素,当遍历当前的这个元素的时候,去栈里看一下我们是不是遍历过相同数值的相邻元素。

解答:

 

posted @ 2025-04-22 21:15  米布丁  阅读(40)  评论(0)    收藏  举报