算法练习Day9 | 栈与队列

46 阅读1分钟

题目

  • 232.用栈实现队列
  • 225.用队列实现栈
  • 20.有效的括号
  • 1047.删除字符串中的所有相邻重复项

232.用栈实现队列

  • 这是一道模拟题,不涉及到具体算法,考察的就是对栈和队列的掌握程度。
  • 一个stack是不够的,需要一个输入栈,一个输出栈

225.用队列实现栈

  • 用两个队列que1和que2实现队列的功能,que2其实完全就是一个备份的作用,把que1最后面的元素以外的元素都备份到que2,然后弹出最后面的元素,再把其他元素从que2导回que1。
优化:用一个队列
  • 一个队列在模拟栈弹出元素的时候只要将队列头部的元素(除了最后一个元素外) 重新添加到队列尾部,此时再去弹出元素就是栈的顺序了。
  • 和第一个方法比起来,就是少了把东西从que2从que1复制过去的部分。

20.有效的括号

  • 用stack
  • 注意要检查stack是否为空

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

  • 自己纸上模拟下再写,比较好理解