码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 栈和队列你真的会用了么?


    232. 用栈实现队列 - 力扣(LeetCode)
    看题解前:用两个栈实现队列
    栈先进后出,队列先进先出
    假定一个StackIn,一个StackOut,入队列时将数据push到StackIn中,出队列时将StackIn中的数据pop出来然后插入到StackOut中再pop即可。
    如入队列顺序为12345,插入至StackIn中为12345
    出队列顺序为54321,StackIn数据pop插入到StackOut中为54321。

    假定先入队列123,出队列1,再入45
    StackIn插入123,StackIn出栈321,StackOut入栈321,StackOut再出栈2即可

    总结:
    push操作调用StackIn的入栈操作即可;
    pop即将StackIn的数据全部出栈然后插入到StackOut中再pop,再将StackOut中数据以同样方式插入回StackIn中即可;
    peek将StackIn的数据全部出栈然后插入到StackOut中再调用top,再将StackOut中数据以同样方式插入回StackIn中即可;
    empty需要判断StackIn和StackOut同时为空即可。

    题解:大体上差不多
    peek有优化:调用自己实现的top找到这个数用res保存下来,再把res插入回去,然后返回res。

    225. 用队列实现栈 - 力扣(LeetCode)
    看题解前:跟上述思路差不多了
    push:插入到q1队列
    pop:把q1队列数据除了最后一个元素全部弹出然后插入到q2保存,获取到最后一个元素再把q2元素放回q1即可
    top:直接返回q1的back(队尾)
    empty:因为每次都把q2清空了的,所以只判断q1是否为空队列即可。

    看题解后:忘记了C++运算符重载了=,可以直接q1=q2不用一个一个弹出。其他的基本相同。

    20. 有效的括号 - 力扣(LeetCode)
    看题解前:比较简单吧,用一个栈只放右括号,遍历s,遇到左括号就往栈里插入一个对应的右括号,比如‘(’就插入’)‘等,遇到右括号就判断跟栈顶那个是否相等,不等就是出错了返回即可。遍历完后查看栈是否为空,不为空说明左括号多了不匹配返回false,反之返回true。需要注意的是在取栈顶元素的时候要优先判断栈是否为空,空栈是无法取栈顶元素的。
    看题解后:考虑到了s的长度如果是奇数则一定不匹配直接返回false,其他的思路以及实现差不多。

    1047. 删除字符串中的所有相邻重复项 - 力扣(LeetCode)
    看题解前:比较简单,遍历s并保存字符到栈,如果当前字符和栈顶字符元素相同就栈弹出,不同就插入即可;再用一个string对象去取栈中的元素出来即可,最后记得逆置。![[Pasted image 20221019171335.png]]

    看题解后:直接拿字符串作为栈,省去了栈以及字符串的操作

  • 相关阅读:
    Linux内核中__u16、__u32、__u64和size_t的理解
    O2OA(翱途)常见知识之 mysql 数据库备份
    java计算机毕业设计springboot+vue青少年编程在线考试系统
    抢单业务介绍
    界面控件DevExpress WPF的主题设计器,可轻松完成应用主题研发
    分布式锁最实用解决方案--redisson分布式锁(一)
    如何使用 Grafana 监控文件系统状态
    77基于matlab的蚁群优化路径算法,二维路径和三维路径优化
    有被惊艳到!阿里达摩院面向开发者公布的Java全体系成长路线,从P5-P8职级全系
    生成 MySQL 删除索引、创建索引、分析表的 SQL 语句
  • 原文地址:https://blog.csdn.net/l50153/article/details/127412058
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号