232. 用栈实现队列
题目链接:https://leetcode.cn/problems/implement-queue-using-stacks/
0x1 看到题目的第一想法
- 没想法
0x2 自己实现过程中遇到哪些困难
- python中栈这个数据类型直接调用吗
- list怎么pop
0x3 今日学习的文章链接,或者视频链接
0x4 看完代码随想录之后的想法
- 用栈实现队列
- 需要使用两个栈
- 入队操作
- 直接将元素放入stack_in中
- 出队操作(先进先出)
- S1. 判断队列是否为空,为空不用继续了,返回None
- S2. stack_out如果为空,需要将stack_in里的内容全部pop到stack_out中,再从stack_out中pop出元素
- S3. stack_out不为空,直接从stack_out中pop元素
- 取队头元素
- S1. 判断队列是否为空,为空不用继续了,返回None
- S2. stack_out如果为空,需要将stack_in里的内容全部pop到stack_out中,再索引stack_out[-1]
- S3. stack_out不为空,直接索引stack_out[-1]
- 判断队列是否为空
- stack_in和stack_out均是空的,即队列空
0x5 今日收获,记录一下自己的学习时长
- 用栈实现队列
- 需要两个栈
- python可以用list实现栈
- stack_in.append(xxx)即为入栈
- stack_in.pop()即为出栈
- 45min
225. 用队列实现栈
题目链接:https://leetcode.cn/problems/implement-stack-using-queues/
0x1 看到题目的第一想法
- 没想法
0x2 自己实现过程中遇到哪些困难
- python中队列这个数据类型不知道怎么拿来用
0x3 今日学习的文章链接,或者视频链接
0x4 看完代码随想录之后的想法
用队列实现栈
- 可用一个队列进行实现
- 入栈操作
- 直接将元素放入que中
出栈操作(先进后出)
- S1. 判断队列是否为空,为空不用继续了,返回None
- S2. 将前面n-1个元素全部按顺序取出来再放到队尾,现在出队的元素就是我们要出栈的元素,而且后面的元素还保持着原来的顺序
top(栈顶元素)
- S1. 判断队列是否为空,为空不用继续了,返回None
- S2. que[-1]
- 判断栈是否为空
- 队列长度是否为0
0x5 今日收获,记录一下自己的学习时长
- 用队列实现栈
- 需要一个队列
- python可以用deque()实现队列
- que.popleft()即为出队
- que.append(xx)即为入队
- 45min
待重点复习
232, 225
总结
- 栈与队列
- 用栈实现队列
- 用队列实现栈