美文网首页
算法训练营day10(11.8)

算法训练营day10(11.8)

作者: 无心浪子 | 来源:发表于2024-11-08 09:21 被阅读0次

题目1: 232. 用栈实现队列

题目思路:需要用两个栈,一个栈用于push,另一个用于pop,只是用于pop的栈为空的情况下需要将push栈中元素pop出来放到pop栈即可。

题目2: 225. 用队列实现栈

题目思路:这个题目没有想出来,抄袭了答案。可以用两个队列来模拟栈。
第一个队列作为main队列,另一个作为辅助队列。push时需要将元素放到辅助队列,然后将main队列的元素弹出放到辅助队列,交换main和辅助队列即可。其他操作只需要操作main队列。

题目3:20. 有效的括号

这个题目需要用栈来实现,思路如下:
循环处理字符串中每个元素。
1)如果元素为左括号,入栈即可。
2)如果元素为右括号,先判断栈是否为空,若为空则直接返回false,否则判断当前元素与栈丁元素是否匹配,不匹配直接false,匹配则弹出栈顶元素
如果栈为空,则返回true,否则返回false。

题目4:1047. 删除字符串中的所有相邻重复

算法思路:使用vector来模拟一个栈(只用push_back,pop_back来操作vector)
循环处理字符串中每个元素:
1)如果栈为空,压入当前元素
2)如果当前元素与栈顶元素相等,弹出栈顶元素
3)如果当前元素与栈顶元素不等,压入当前元素。
最后对栈中所有元素从头到尾串接即可。

相关文章

网友评论

      本文标题:算法训练营day10(11.8)

      本文链接:https://www.haomeiwen.com/subject/rudfjjtx.html