news 2026/7/7 3:54:13

Day10 >> 232、用栈实现队列 + 225、用队列实现栈 + 20、有效的括号

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Day10 >> 232、用栈实现队列 + 225、用队列实现栈 + 20、有效的括号

代码随想录-栈

232、用栈实现队列

没有算法逻辑,就是考察对栈这个数据结构的操作,需要多加练习

class MyQueue { Stack<Integer> stackIn; Stack<Integer> stackOut; public MyQueue() { stackIn = new Stack<>(); stackOut = new Stack<>(); } public void push(int x) { stackIn.push(x); } public int pop() { dumpstackIn(); return stackOut.pop(); } public int peek() { dumpstackIn(); int result = stackOut.pop(); stackOut.push(result); return result; } public boolean empty() { if (stackIn.isEmpty() && stackOut.isEmpty()) { return true; }else { return false; } } private void dumpstackIn() { if (!stackOut.isEmpty()) return; while (!stackIn.isEmpty()) { stackOut.push(stackIn.pop()); } } } /** * Your MyQueue object will be instantiated and called as such: * MyQueue obj = new MyQueue(); * obj.push(x); * int param_2 = obj.pop(); * int param_3 = obj.peek(); * boolean param_4 = obj.empty(); */

225、用队列实现栈

这道题也是在考察对栈和队列的掌握情况,要注意队列的操作,不要与栈搞混了,需要多加练习。

class MyStack { Queue<Integer> queue; public MyStack() { queue = new LinkedList<>(); } public void push(int x) { queue.add(x); } public int pop() { revse(); return queue.poll(); } public int top() { revse(); int result = queue.poll(); queue.offer(result); return result; } public boolean empty() { return queue.isEmpty(); } private void revse() { int size = queue.size(); size--; while (size-- > 0) { queue.add(queue.poll()); } } } /** * Your MyStack object will be instantiated and called as such: * MyStack obj = new MyStack(); * obj.push(x); * int param_2 = obj.pop(); * int param_3 = obj.top(); * boolean param_4 = obj.empty(); */

20、有效的括号

这道题主要考察栈的数据结构特性,适用于解决有秩序要求、严格对称的一类匹配问题,重点要考虑清楚所有的不匹配场景,然后去有针对性的写处理代码,这样就很清晰,不容易乱。

class Solution { public boolean isValid(String s) { Stack<Character> st = new Stack<>(); for (char c : s.toCharArray()) { if (c == ')' && !st.isEmpty() && st.peek() == '(') { st.pop(); } else if (c == '}' && !st.isEmpty() && st.peek() == '{') { st.pop(); } else if (c == ']' && !st.isEmpty() && st.peek() == '[') { st.pop(); } else { st.push(c); } } return st.isEmpty(); } }

1047、删除字符串种的所有相邻重复项

这道题留着明天练习下

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 12:52:37

2、深入探索BPF:从基础到首个程序实践

深入探索BPF:从基础到首个程序实践 1. 复杂系统的洞察挑战 在过去几十年里,计算系统的复杂性不断增加。理解软件行为催生了多个业务领域,这些领域都致力于解决洞察复杂系统的难题。常见的方法有两种: - 日志分析 :通过分析计算系统中所有应用程序生成的数据日志来了解…

作者头像 李华
网站建设 2026/7/7 17:19:42

备份当前Windows11系统为ISO镜像

进行常规设置 文件-查看-显示-隐藏的项目文件-查看-显示-文件扩展名设置-隐私和安全性-设备加密&#xff1a;关闭设备加密设置默认存储盘&#xff1a;系统-存储-保存新内容的地方 新的应用保存到D&#xff1a;此时D盘会多出三个文件夹&#xff1a;ProgramFiles、用户文件夹、W…

作者头像 李华
网站建设 2026/7/6 22:44:00

16、XDP与Linux内核安全:负载均衡、防火墙、能力与Seccomp详解

XDP与Linux内核安全:负载均衡、防火墙、能力与Seccomp详解 在网络和系统安全领域,XDP(Express Data Path)和BPF(Berkeley Packet Filter)相关技术正发挥着越来越重要的作用。本文将深入探讨XDP在负载均衡和防火墙方面的应用,以及Linux内核中的能力(Capabilities)和Se…

作者头像 李华
网站建设 2026/7/6 22:21:26

ollama v0.13.3 最新发布:新增模型与功能优化详细解读

2025年12月12日&#xff0c;ollama v0.13.3 版本正式发布。本次更新引入了多款全新模型&#xff0c;并对现有功能进行了优化与修复&#xff0c;为开发者在代码分析、多语言检索以及软件工程领域提供了更高效的支持。 一、全新模型Devstral-Small-2 24B 参数模型擅长使用工具探索…

作者头像 李华
网站建设 2026/7/7 17:55:47

45、ProFTPD:配置与安全指南

ProFTPD:配置与安全指南 1. ProFTPD 安装与运行模式 在配置 ProFTPD 之前,我们需要获取它。如果系统提供的 ProFTPD 包版本低于 1.2.9rc2,且“更新”或“勘误”网站上没有更新版本,可从官方下载站点 ftp://ftp.proftpd.org 获取。源代码位于 /distrib/source/ 目录,…

作者头像 李华
网站建设 2026/7/7 9:31:39

阿里通义DeepResearch开源:让AI从信息整合者跃升为研究决策者

9月17日&#xff0c;阿里巴巴通义实验室正式对外发布重大技术成果——通义DeepResearch研究型智能体系统。该系统通过在数据架构、智能体范式、训练机制、基础设施&#xff08;Infra&#xff09;及测试时扩展&#xff08;Test Time Scaling&#xff09;五大维度的系统性创新&am…

作者头像 李华