Java实现Leetcode题(栈和队列)

Leetcode232(用栈实现队列)

package stack_queue;import java.util.Stack;public class Leetcode232 {public static void main(String[] args) {MyQueue myQueue = new MyQueue();myQueue.push(1);myQueue.push(2);System.out.print(myQueue.peek());System.out.print(myQueue.peek());System.out.print(myQueue.isEmpty());}}
class MyQueue{Stack<Integer> stackIn;Stack<Integer> stackOut;//初始化public MyQueue() {this.stackIn = new Stack<>();this.stackOut = new Stack<>();}public void push(int x) {stackIn.push(x);}public boolean isEmpty() {return stackIn.empty()&&stackOut.empty();}public int pop() {dumpStackIn();return stackOut.pop();}public int peek() {dumpStackIn();return stackOut.peek();}private void dumpStackIn() {if(!stackOut.empty())return; //如果出栈不为空则什么都不做while(!stackIn.empty()) {stackOut.push(stackIn.pop());}}
}

 Leetcode235(队列实现栈)

package stack_queue;import java.util.LinkedList;
import java.util.Queue;public class Leetcode235 {public static void main(String[] agrs) {Stack02 stack = new Stack02();stack.push(1);stack.push(2);stack.pop();stack.push(3);stack.push(4);stack.pop();System.out.print(stack.peek());}}
//单队列实现栈
class Stack02{Queue<Integer> queue;public Stack02() {this.queue = new LinkedList<>();}public boolean isEmpty() {return queue.isEmpty();}public void push(int x) {queue.offer(x);int size = queue.size();size--;while(size-->0) {queue.offer(queue.poll());}}public void pop() {queue.poll();}public int peek() {return queue.peek();}
}//双队列实现栈
class Stack{Queue<Integer> queue1;Queue<Integer> queue2;public Stack() {this.queue1 = new LinkedList<>();this.queue2 = new LinkedList<>();}public void push(int x) {queue2.offer(x);while(!queue1.isEmpty()) {queue2.offer(queue1.poll());}Queue<Integer> queueTemp;queueTemp = queue1;queue1 = queue2;queue2 = queueTemp;}public int pop() {return queue1.poll();}public int top() {return queue1.peek();}public boolean empty() {return queue1.isEmpty();}
}

Leetcode20(有效括号)

package stack_queue;
import java.util.Stack;public class Leetcode20 {public static void main(String[] args) {System.out.print(matchWay("("));}public static boolean matchWay(String str) {Stack<Character> stack = new Stack<>();for(int i =0;i<str.length();i++) {char ch = str.charAt(i);if(ch =='(') {stack.push(')');}else if(ch == '[') {stack.push(']');}else if(ch == '{') {stack.push('}');}else if(stack.empty()||ch!=stack.peek()) {return false;}else {stack.pop();}}return stack.empty();}
}

Leetcode1047(删除字符串中的所有相邻重复项)

package stack_queue;
import java.util.Stack;public class Leetcode1047 {public static void main(String[] args) {System.out.print(match("aacbbcca"));}//stack方法public static String match(String str) {Stack<Character> stack = new Stack();for(int i =0;i<str.length();i++) {char chars = str.charAt(i);if(stack.empty()||stack.peek()!=chars) {stack.push(chars);}else {stack.pop();}}String str02 = " ";while(!stack.empty()) {str02 = stack.pop()+str02;}return str02;}//字符串作栈public static String match02(String str) {StringBuilder strBulider = new StringBuilder();int top = -1;for(int i=0;i<str.length();i++) {char c = s.charAt(i);if(top>=0&&strBulider.charAt(top)==c) {strBulider.deleteCharAt(top);top--;}else {strBulider.append(c);top++;}}return strBulider.toString();}}

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/217979.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于K-means与CNN的遥感影像分类方法

基于K-means与CNN的遥感影像分类 一、引言 1.研究背景 航天遥感技术是一种通过卫星对地观测获取遥感图像信息数据的技术&#xff0c;这些图像数据在各领域都发挥着不可或缺的作用。遥感图像分类主要是根据地面物体电磁波辐射在遥感图像上的特征&#xff0c;判断识别地面物体的属…

推荐算法:HNSW【推荐出与用户搜索的类似的/用户感兴趣的商品】

HNSW算法概述 HNSW&#xff08;Hierarchical Navigable Small Word&#xff09;算法算是目前推荐领域里面常用的ANN&#xff08;Approximate Nearest Neighbor&#xff09;算法了。其目的就是在极大量的候选集当中如何快速地找到一个query最近邻的k个元素。 要找到一个query的…

uniapp微信小程序点击保存图片

一&#xff1a;需要用到的API 1.uni.uploadFile(OBJECT) 将本地资源上传到开发者服务器 uni.uploadFile(OBJECT) | uni-app官网 2. uni.saveImageToPhotosAlbum(OBJECT) 保存图片到系统相册。 uni.chooseImage(OBJECT) | uni-app官网 注意&#xff1a;微信小程序在2023年…

【参数汇总】mysql服务端/客户端常见优化参数

mysql服务端参数 1、innodb_buffer_pool_size &#xff08;innodb索引buffer pool缓冲区大小&#xff09; 默认大小为128M&#xff0c; 官方推荐其配置为系统内存的 50% 到 75% 。 一般innodb_buffer_pool_size要结合以下两个参数来设置&#xff1a; innodb_buffer_pool_ch…

【1.计算机组成与体系结构】浮点数的表示

目录 1.浮点数的表示2.运算过程3.特点 1.浮点数的表示 N尾数*基数(指数/也称为阶码) 例如&#xff1a;1.25x105 ; 1.255x103 2.运算过程 对阶>尾数计算>结果格式化 3.特点 1、一般尾数用补码&#xff0c;阶码用移码 2、阶码的位数决定数的表示范围&#xff0c;位数越…

本地部署 Qwen-Audio-Chat

本地部署 Qwen-Audio-Chat Qwen-Audio-Chat 介绍Qwen-Audio Github 地址部署 Qwen-Audio-Chat安装 ffmpeg克隆代码库创建虚拟环境使用 pip 安装 pytorch使用 pip 安装依赖使用 ModelScope运行 Web UI Qwen-Audio-Chat 介绍 Qwen-Audio-Chat是通用语音多模态大规模语言模型&…

Spring Boot 3 整合 Mybatis-Plus 动态数据源实现多数据源切换

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

什么是循环依赖,如何解决

目录 什么是循环依赖&#xff1f; 循环依赖的原因&#xff1a; 如何解决循环依赖问题&#xff1f; 最佳实践和注意事项&#xff1a; 结论&#xff1a; 当在使用 Spring Boot 进行开发时&#xff0c;循环依赖&#xff08;Circular Dependency&#xff09;可能会成为一个常见…

广东省工业和信息化厅工业互联网处一行莅临科东软件考察调研

近日&#xff0c;广东省工业和信息化厅工业互联网处副处长郑华、广东省科学院智能制造研究所副所长曹永军等一行领导、专家莅临科东软件&#xff0c;就聚焦工业数字化转型&#xff0c;助推新型工业化高质量发展进行考察调研。 科东软件陪同郑华副处长一行参观科东软件展厅&…

学习笔记——GDB调试器

感谢B站up主 xiaobing1016 的学习视频&#xff1a;基于VSCode和CMake实现C/C开发 | Linux篇_哔哩哔哩_bilibili

Redis缓存异常问题,常用解决方案总结

前言 Redis缓存异常问题分别是&#xff1a;1.缓存雪崩。2.缓存预热。3.缓存穿透。4.缓存降级。5.缓存击穿&#xff0c;以 及对应Redis缓存异常问题解决方案。 1.缓存雪崩 1.1、什么是缓存雪崩 如果缓存集中在一段时间内失效&#xff0c;发生大量的缓存穿透&#xff0c;所有…

华为OD试题一(磁盘容量排序、数大雁、计算疫情扩散时间)

1. 磁盘容量排序 题目描述&#xff1a;磁盘的容量单位常用的有M&#xff0c;G&#xff0c;T这三个等级&#xff0c;它们之间的换算关系为1T 1024G&#xff0c;1G 1024M&#xff0c;现在给定n块磁盘的容量&#xff0c;请对它们按从小到大的顺序进行稳定排序&#xff0c;例如给…

TUP实现一对一聊天

package TCP; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; /** * 发送消息线程 */ class Send ext…

道可云元宇宙每日资讯|上海市区块链关键技术攻关专项项目立项清单公布

道可云元宇宙每日简报&#xff08;2023年12月11日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 上海市2023年度区块链关键技术攻关专项项目立项清单公布 据上海市科学技术委员会近日发布通知&#xff0c;上海市2023年度“科技创新行动计划”区块链关键技术攻关…

Appium 自动化测试 —— Appium的环境搭建与设置流程!

1、Appium 环境搭建&#xff1a; 学习 appium 最大的难处之一在于环境的安装&#xff0c;安装流程比较繁琐&#xff0c;安装的工具和步骤也较多&#xff0c;以下是基于 Windows 系统下的 Android 手机端的安装流程。就像我们在用 Selenium 进行 web 自动化测试的时候一样&…

Python键鼠控制之PyAutoGUI方法

前言 PyAutoGUI 是一个 Python 库&#xff0c;用于在桌面应用程序中自动化鼠标和键盘操作。它提供了一组简单而强大的方法&#xff0c;使得开发者可以编写脚本来模拟用户的鼠标点击、键盘输入以及屏幕截图等操作。PyAutoGUI 可以用于自动化重复性任务、测试 GUI 应用程序、创建…

如何通过3D人脸扫描设备制作一个3D超写实虚拟人?

随着虚拟技术的快速发展&#xff0c;现如今的虚拟人逐渐逼真&#xff0c;比二次元虚拟偶像更接近真人形象的3D超写实虚拟人&#xff0c;拥有着更逼真的面部表情&#xff0c;更完美地融入于虚实画面。 随着3D人脸扫描设备不断发展&#xff0c;大大降低了高难度的3D超写实虚拟人…

Django 模型操作(六)

Django通过Model操作数据库, 不管你数据库的类型是MySql或者Sqlite, Django自动帮你生成相应数据库类型的SQL语句,所以不需要关注SQL语句和类型,对数据的操作Django帮我们自动完成。只要会写Model就可以了。 django使用对象关系映射 (Object Relational Mapping, 简称ORM)框…

FPGA UltraScale GTY 全网最细讲解,aurora 8b/10b编解码,HDMI视频传输,提供vivado工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、详细设计方案设计框图视频源选择ADV7611解码芯片配置及采集动态彩条视频数据组包UltraScale GTY 全网最细解读UltraScale GTY 基本结构UltraScale GTY 参考时钟的选择和分配UltraScale GTY 发送和接收处理流程Ultr…

Datawhale聪明办法学Python(task2Getting Started)

一、课程基本结构 课程开源地址&#xff1a;课程简介 - 聪明办法学 Python 第二版 章节结构&#xff1a; Chapter 0 安装 InstallationChapter 1 启航 Getting StartedChapter 2 数据类型和操作 Data Types and OperatorsChapter 3 变量与函数 Variables and FunctionsChapte…