news 2026/7/11 10:49:27

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/10 18:12:15

1、深入探索BPF:从基础到实战应用

深入探索BPF:从基础到实战应用 1. 引言 BPF(Berkeley Packet Filter)和XDP(Express Data Path)是Linux中功能强大的工具。传统的容器过滤和路由逻辑常使用iptables,但它存在诸多问题,如不同版本命令行标志不一致、大量规则导致性能下降等。而BPF和XDP的出现,为解决这…

作者头像 李华
网站建设 2026/7/11 19:28:08

重构多模态时空秩序:TMRoPE技术突破音视频同步理解难题

在人工智能多模态交互领域&#xff0c;音频与视频信号的时间轴对齐始终是限制模型语义理解准确性的关键瓶颈。传统多模态模型大多采用独立编码后简单拼接的处理方式&#xff0c;这种做法常常造成音频帧与视频帧在时间维度上出现细微偏差&#xff0c;进而引发唇语识别错误、动态…

作者头像 李华
网站建设 2026/7/11 8:23:14

终极百度网盘加速指南:免费实现快速下载的完整教程

终极百度网盘加速指南&#xff1a;免费实现快速下载的完整教程 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘的龟速下载而烦恼吗&#xff1f;想要体验真正的百…

作者头像 李华
网站建设 2026/7/10 7:35:32

【附源码】新能源充电桩管理系统(源码+数据库+毕业论文+答辩ppt)java开发springboot+vue框架javaweb,可做计算机毕业设计或课程设计

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;分享技术代码帮助学生学习。自有计算机毕设的工作室团队&#xff0c;专注计算机毕设开发、定制、远程、文档编写指导等。 &#x1f345; 查看主页更多项目 | 计算机毕设工作室 &#x1f345; &#x1f345; …

作者头像 李华
网站建设 2026/7/10 19:36:12

python基础(mysql)

一、sql基础语句1.select语句SELECT column1, column2, ... FROM table_name WHERE condition;其中&#xff0c;SELECT关键字用于指定要查询的列&#xff0c;可以使用*代表所有列&#xff1b;FROM关键字用于指定要查询的表&#xff1b;WHERE关键字用于指定查询的条件。select *…

作者头像 李华