LeetCode 232. 用栈实现队列(C++)

**

232. 用栈实现队列

**
题目描述:

使用栈实现队列的下列操作:
push(x) -- 将一个元素放入队列的尾部。
pop() -- 从队列首部移除元素。
peek() -- 返回队列首部的元素。
empty() -- 返回队列是否为空。

主要思路:

  • 入队时

     1.直接push到inStack中
    
  • 出队时

     1.如果outStack为空,先把inStack所有元素逐一弹出,push到outStack,最后弹出outStack的栈顶元素
     2.如果outStack不为空,直接弹出outStack的栈顶元素
    

代码如下:

class MyQueue {
public:
    stack<int> inStack;
    stack<int> outStack;
    
    MyQueue() {

    }
    
    void push(int x) {
        inStack.push(x);
    }
    
    int pop() {
        cheak();
        int a=outStack.top();
        outStack.pop();
        return a;
    }

    int peek() {
        cheak();
        return outStack.top();
    }
    

    bool empty() {
        return inStack.empty()&&outStack.empty();
    }

    void cheak()
    {
        if(outStack.empty())
        {
            while(!inStack.empty())
            {
                outStack.push(inStack.top());
                inStack.pop();
            }

        }
    }
};

执行结果:双100%

热门文章

暂无图片
编程学习 ·

Linux批量修改文件名

#!/bin/bash #生成文件的list文本,复制文件 for file in `cat val.txt` do cp val1/$file* val/ done#当前文件夹下重命名 for file in val/*-1.png; do mv "$file" "${file%-1.png}.png"; done
暂无图片
编程学习 ·

python从入门到放弃篇8(while True的使用,列表,if嵌套)实现选举小程序

今天,我又开始了新的征程,开始学习Java,但是老本不能忘,所以,我打算先把python的全套入门到放弃做完,再开始Java的新篇章,我刚刚装了Java的Esclipe编辑器全英文,还不太适应,过一段时间,慢慢熟悉,应该就会好起来了。路一步步走,饭一口口吃。 while循环,我是很喜欢的…
暂无图片
编程学习 ·

深度学习在美团推荐平台排序中的运用

美团作为国内最大的生活服务平台,业务种类涉及食、住、行、玩、乐等领域,致力于让大家吃得更好,活得更好,有数亿用户以及丰富的用户行为。随着业务的飞速发展,美团的用户和商户数在快速增长。在这样的背景下,通过对推荐算法的优化,可以更好的给用户提供感兴趣的内容,帮…
暂无图片
编程学习 ·

leetcode:208. 实现 Trie (前缀树)

链接:https://leetcode-cn.com/problems/implement-trie-prefix-tree/ 实现一个前缀树(节点),一个前缀树节点需要保存它可能的26个孩子的信息,以及这个节点是不是一个单词的结尾。 C++代码: class Trie {Trie * children[26];bool isWord = false; public:/** Initialize…
暂无图片
编程学习 ·

Scanner对象

Scanner对象 作为输入使用,主要有两种接收键盘输入字符的方法,next()方法和nextLine()方法,下面介绍一下 import java.util.Scanner;public class demo01 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输…
暂无图片
编程学习 ·

Cause: org/gradle/api/internal/plugins/DefaultConvention

从spring下载了一个springboot初始化项目,gradle-wrapper.properties 中使用了 gradle 6.4(如下)distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-bin.zip zipStoreBase=GRADL…
暂无图片
编程学习 ·

LeetCode_Everyday:021 Merge Two Sorted Lists

LeetCode_Everyday:021 Merge Two Sorted Lists题目:示例:代码参考此外 LeetCode Everyday:坚持价值投资,做时间的朋友!!! 题目: 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:示例 1:输入:1->2->4, 1-…
暂无图片
编程学习 ·

springboot应用启动流程分析,嵌入式tomcat

之前我们分析了下springboot自动装载的原理,现在我们看看springboot应用启动的流程: 一般调用如下: // 应用代码SpringApplication.run(MiddlewareApplication.class, args); // SpringApplication.javapublic static ConfigurableApplicationContext run(Class<?> p…
暂无图片
编程学习 ·

每天一刷20200701

今天7.1号也要加油哦 问题 题目描述 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。 注意每个输入文件有多组输入,即多个字符串用回车隔开 输入描述: 字符串只包含小写英文字母, 不考…
暂无图片
编程学习 ·

spring+mybatis日志

spring4默认日志是log4j, spring5默认日志是JUL spring4下使用JCL时,如果有log4j的jar,用的具体实现类是log4j,否则用的具体实现类是JUL spring4下使用JCL时,用的具体实现类是JUL1、spring4下日志加载顺序//循环for(int i=0; i<classesToDiscover.length && resu…
暂无图片
编程学习 ·

例题 6-18 雕塑(Sculpture,ACM/ICPC NWERC 2008,UVa12171)

原题链接:https://vjudge.net/problem/UVA-12171 分类:图 备注:离散化;floodfill 紫书思路:利用离散化把三维图缩小,用floodfill求出外围空气体积和内表面积,总体积减去空气体积即所求体积,内表面积即所求表面积。 离散化知识参考:https://blog.csdn.net/tlonline/art…
暂无图片
编程学习 ·

去掉无用节点

using UnityEngine; using UnityEditor; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; using UnityEditorInternal;// 美术在导出模型时,有很多挂点是没有用的。但有些挂点却是有用的,跟美术沟通,有用挂点的名字。// 再使用…
暂无图片
编程学习 ·

进程保活

进程保活一.为什么需要进程保活二.进程优先级前台进程(Foreground process)可见进程(Visible process)服务进程(Service process)后台进程(Background process)空进程(Empty process)三.保活方式1. 利用 Notification 提升权限2. 利用系统Service机制拉活3. 添加Manifest文件属…
暂无图片
编程学习 ·

select 进阶查询,不会你就 OUT 了

1.1 分组查询 1.1.1 语法 # where 和 having 可以省略 SELECT col_name, group_function, FROM tb_name [WHERE where_condition] GROUP BY group_expression [HAVING group_condition];☞ 说明col_name:列明 tb_name:表名 where_condition:where 后的过滤条件 group_func…
暂无图片
编程学习 ·

css少见的标签

font-smoothing抗锯齿-moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased;-webkit-font-smoothing它有三个属性值:none:对低像素的文本比较好subpixel-antialiased:默认值antialiased:抗锯齿很好解决光标颜色和文字颜色一致@supports (-webkit-mask…
暂无图片
编程学习 ·

TomCat学习笔记(1)--裸Tomcat框架实现和IDEA实现的比较

TomCat是什么不多说了,这里是用来记录我学习TomCat的操作与心路历程 本文对比演示用纯Tomcat和用IDEA集成开发同样的页面效果的两种方法。 在不用IDEA集成开发环境时稍微学习了一些tomcat,能写出一个界面并且用get、post函数试着传递数据。(在下文介绍一下流程并给予简单分析…
暂无图片
编程学习 ·

GitHub更新fork的代码

1、在本地装好github客户端,或者git客户端 2、clone 自己的fork分支到本地,可以直接使用github客户端,clone到本地,如果使用命令行,命令为:git clone https://github.com/liuyanqing1023/WxJava.git3、增加源分支地址到你项目远程分支列表中(此处是关键),先得将原来的仓…