题目1: 232. 用栈实现队列
题目思路:需要用两个栈,一个栈用于push,另一个用于pop,只是用于pop的栈为空的情况下需要将push栈中元素pop出来放到pop栈即可。
题目2: 225. 用队列实现栈
题目思路:这个题目没有想出来,抄袭了答案。可以用两个队列来模拟栈。
第一个队列作为main队列,另一个作为辅助队列。push时需要将元素放到辅助队列,然后将main队列的元素弹出放到辅助队列,交换main和辅助队列即可。其他操作只需要操作main队列。
题目3:20. 有效的括号
这个题目需要用栈来实现,思路如下:
循环处理字符串中每个元素。
1)如果元素为左括号,入栈即可。
2)如果元素为右括号,先判断栈是否为空,若为空则直接返回false,否则判断当前元素与栈丁元素是否匹配,不匹配直接false,匹配则弹出栈顶元素
如果栈为空,则返回true,否则返回false。
算法思路:使用vector来模拟一个栈(只用push_back,pop_back来操作vector)
循环处理字符串中每个元素:
1)如果栈为空,压入当前元素
2)如果当前元素与栈顶元素相等,弹出栈顶元素
3)如果当前元素与栈顶元素不等,压入当前元素。
最后对栈中所有元素从头到尾串接即可。












网友评论