文章目录

  • 1.题目详情
  • 2.解题代码

1.题目详情

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )

示例 1:
输入:
[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”]
[[],[3],[],[]]
输出:[null,null,3,-1]

示例 2:
输入:
[“CQueue”,“deleteHead”,“appendTail”,“appendTail”,“deleteHead”,“deleteHead”]
[[],[],[5],[2],[],[]]
输出:[null,-1,null,null,5,2]

2.解题代码

class CQueue:def __init__(self):self.A, self.B = [], []def appendTail(self, value: int) -> None:self.A.append(value)def deleteHead(self) -> int:#若队列B中有元素,则直接弹出if self.B: return self.B.pop()#若队列A中没有元素,deleteHead 操作返回 -1if not self.A: return -1#若B中没有元素,且A中有元素,则先使用append进栈,在使用pop出栈while self.A:self.B.append(self.A.pop())return self.B.pop()# Your CQueue object will be instantiated and called as such:
# obj = CQueue()
# obj.appendTail(value)
# param_2 = obj.deleteHead()

14--用两个栈实现队列相关推荐

  1. 剑指offer---用两个栈实现队列

    题目:用两个栈实现队列 要求:用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 1 class Solution 2 { 3 public: 4 void push ...

  2. 编程题练习 两个栈实现队列

    两个栈实现队列 1.判断队列为空: 当栈s1 和 s2都为空时,那么队列为空 2.入队操作: 直接将数据加入到s1栈中 3.出队操作:当 s2 栈不为空的时候, s2 栈直接执行出栈操作就可以得到出队 ...

  3. 剑指offer:面试题09. 用两个栈实现队列

    题目:用两个栈实现队列 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能.(若队列中没有 ...

  4. 剑指offer_第5题_用两个栈实现队列

    题目描述 用两个栈来实现一个队列 完成队列的Push和Pop操作 队列中的元素为int类型 理解 关于栈 什么是栈 栈的抽象数据类型 Python实现栈 关于队列 什么是队列 队列抽象数据类型 Pyt ...

  5. 《LeetCode力扣练习》剑指 Offer 09. 用两个栈实现队列 Java

    <LeetCode力扣练习>剑指 Offer 09. 用两个栈实现队列 Java 一.资源 题目: 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 de ...

  6. 剑指Offer #05 用两个栈实现队列(模拟)

    题目来源:牛客网-剑指Offer专题 题目地址:用两个栈实现队列 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 题目解析 首先,我们需要知道一下基本知 ...

  7. 【干货】容器适配器实现两个栈模拟队列

    用两个栈模拟队列的思想就是"倒水思想",这里我们用自定义类型模拟出线性表,再用线性表做容器实现栈的数据结构,最后用栈来实现队列,代码如下: #include<iostream ...

  8. 剑指offer第二版-9.用两个栈实现队列

    描述:使用两个栈实现一个队列.队列中实现尾部插入和头部删除函数. 思路:stack1负责插入,stack2负责弹出,如果stack2为空了,将stack1的元素依次弹出并存放到stack2中,之后对s ...

  9. 《剑指offer》-- 构建乘积数组、求1+2+3+...+n、不用加减乘除做加法、包含min函数的栈、用两个栈实现队列

    一.构建乘积数组: 1.题目: 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*. ...

  10. 《剑指offer》第九题(用两个栈实现队列)

    // 面试题:用两个栈实现队列 // 题目:用两个栈实现一个队列.队列的声明如下,请实现它的两个函数appendTail // 和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的 ...

最新文章

  1. DataGridView合并表头实现 、二维表头的实现
  2. LeetCode-字符串-58. 最后一个单词的长度
  3. arrays中copyof_在内存只有10M的空间中申请一块5M的数组空间,会导致OOM吗?
  4. 1.1.10 从二分查找BinarySearch开启算法学习之路---《java算法第四版》
  5. Activity和Service通信 使用BroadcastReceiver
  6. java single instance_java单例模式(具体代码显现)两种方法
  7. 控件制作之design-time attribute
  8. Cocos Creator 粒子效果插件
  9. 关于C语言的指针、链表的原理和各类操作
  10. 服务器win10系统开机慢,Win10系统开机慢怎么办 windows10开机慢的解决方法
  11. POJ_3984迷宫问题(bfs基础题)
  12. 多元统计分析朱建平pdf_应用多元统计分析课后答案朱建平版
  13. 计算机考研复试之数据库
  14. 如何通过dba_hist_active_sess_history分析数据库历史性能问题
  15. 代码精进之路 码农到工匠pdf_专访张建飞:阿里技术也提倡,优雅代码和整洁架构...
  16. LM393(寻迹原理)
  17. peoplesoft 更新表接口程序
  18. HTML5笔记(一)
  19. 【亲测有效】解决PPT里多个图片无法使用组合功能
  20. 组合电路中的竞争与冒险

热门文章

  1. C++11 explicit关键字的作用
  2. 实际操作之路考的这些事
  3. 264 参考帧 list0 list1
  4. ffmpeg编译(生成Windows或Win32平台dll, lib)
  5. 宏块与宏块对(附图)
  6. mysql 数据库函数入门
  7. ALM 中查看某个 test 的更改 history 历史
  8. Jmeter笔记(Ⅱ)使用Jmeter实现轻量级的接口自动化测试
  9. python如何实现支持中文
  10. UIView类绘图出现错误提示