代码随想录算法训练营DAY11 | 栈与队列 (2)
一、LeetCode 20 有效的括号
题目链接:20.有效的括号
https://leetcode.cn/problems/valid-parentheses/
思路:遇到左括号直接进栈;遇到右括号判断站顶是否有匹配的括号,没有就返回flase,有就将栈顶元素出栈;最后检测栈内是否有元素,栈空则说明匹配成功。
class Solution {public boolean isValid(String s) {Stack<Character> stack = new Stack<>();for(int i = 0; i < s.length(); i++){char c = s.charAt(i);if(c == '(' || c == '{' || c == '['){stack.push(c);continue;}else{if(stack.empty()){return false;} }if(c == ')'){if(stack.peek() == '('){stack.pop();}else{return false;}}else if(c == ']'){if(stack.peek() == '['){stack.pop();}else{return false;}}else if(c == '}'){if(stack.peek() == '{'){stack.pop();}else{return false;}}} return stack.empty();}
}
二、LeetCode 1047 删除字符串中的所有相邻重复项
题目链接:1047.删除字符串中的所有相邻重复项
https://leetcode.cn/problems/remove-all-adjacent-duplicates-in-string/
思路:遍历字符串,当前元素与栈顶元素相同时,栈顶元素出栈;当前元素与栈顶元素不同或栈空时,元素入栈;最后将栈中元素逆序输出(本文使用StringBuilder类中的insert()方法)。
class Solution {public String removeDuplicates(String s) {Stack<Character> stack = new Stack<>();for(int i = 0; i < s.length(); i++){char c = s.charAt(i);if(stack.empty()){stack.push(c);}else{if(stack.peek() == c){stack.pop();}else{stack.push(c);}}}StringBuilder sb = new StringBuilder();while(!stack.empty()){sb.insert(0,stack.pop());}return sb.toString();}
}
三、LeetCode 150 逆波兰表达式求值
题目链接:150.逆波兰表达式求值
https://leetcode.cn/problems/evaluate-reverse-polish-notation/
思路:设置数字栈num_stack;遍历字符串数组,遇到数字时直接入栈;遇到符号时出栈两次,记为num1、num2,判断符号类型后进行对应操作得到结果res并压入栈中;最后返回栈内结果即为所求。
class Solution {public int evalRPN(String[] tokens) {//设置数字栈Stack<Integer> num_stack = new Stack<>();for(int i = 0; i < tokens.length; i++){int flag = judge(tokens[i]);if(flag == 0){//数字,直接入栈num_stack.push(Integer.valueOf(tokens[i]));}else{//符号,判断是什么符号,进行对应操作,得出的结果入栈int num1 = num_stack.pop();int num2 = num_stack.pop();int res = 0;if(tokens[i].equals("+")){res = num1 + num2;}else if(tokens[i].equals("-")){res = num2 - num1;}else if(tokens[i].equals("*")){res = num1 * num2;}else{res = num2 / num1;}num_stack.push(res);}}return num_stack.pop();}//judge函数用来判断字符串是数字public int judge(String s){if( s.equals("*") || s.equals("/") || s.equals("+") || s.equals("-")){return 1;}//数字,返回0return 0;}
}
四、今日小结
提前完成算法学习任务,雪很大,出去溜达了一下,晚上也要努力学习呀~
相关文章:
代码随想录算法训练营DAY11 | 栈与队列 (2)
一、LeetCode 20 有效的括号 题目链接:20.有效的括号https://leetcode.cn/problems/valid-parentheses/ 思路:遇到左括号直接进栈;遇到右括号判断站顶是否有匹配的括号,没有就返回flase,有就将栈顶元素出栈࿱…...
【Spring实战】33 Spring Boot3 集成 Nacos 配置中心
文章目录 1. 配置中心定义2. 解决哪些问题3. 常用的配置中心4. 使用示例1)没引入 Nacos 配置中心2)引入依赖3)配置Nacos连接信息4)在 Nacos 上配置属性5)在 Spring Boot 中使用配置6)启动服务&验证7&am…...
ElementUI安装与使用指南
Element官网-安装指南 提醒一下:下面实例讲解是在Mac系统演示的; 一、开发环境配置 电脑需要先安装好node.js和vue2或者vue3 安装Node.js Node.js 中文网 安装node.js命令:brew install node node.js安装完后,输入࿱…...
Opencv——图片卷积
图像滤波是尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性。 线性滤波是图像处理最基本的方法,它允许我们对图像进行处理,产生很多不同的效果。首先,我们需要一个二…...
项目安全-----加密算法实现
目录 对称加密算法 AES (ECB模式) AES(CBC 模式)。 非对称加密 对称加密算法 对称加密算法,是使用相同的密钥进行加密和解密。使用对称加密算法来加密双方的通信的话,双方需要先约定一个密钥,加密方才能加密&#…...
只用一台服务器部署上线(宝塔面板) 前后端+数据库
所需材料 工具:安装宝塔面板服务器至少一台、域名一个 前端:生成dist文件(前端运行build命令) 后端:生成jar包(maven运行package命令) 准备: 打开宝塔面板,点击进入软…...
《Pandas 简易速速上手小册》第8章:Pandas 高级数据分析技巧(2024 最新版)
文章目录 8.1 使用 apply 和 map 函数8.1.1 基础知识8.1.2 重点案例:客户数据清洗和转换8.1.3 拓展案例一:产品评分调整8.1.4 拓展案例二:地址格式化 8.2 性能优化技巧8.2.1 基础知识8.2.2 重点案例:大型销售数据分析8.2.3 拓展案…...
计算机网络_1.6.2 计算机网络体系结构分层的必要性
1.6.2 计算机网络体系结构分层的必要性 一、五层原理体系结构每层各自主要解决什么问题1、物理层2、数据链路层3、网络层4、运输层5、应用层 二、总结三、练习 笔记来源: B站 《深入浅出计算机网络》课程 本节主要介绍实现计算机网络需要解决哪些问题?以…...
跟着cherno手搓游戏引擎【18】抽象Shader、项目小修改
抽象: Shader.h: #pragma once #include <string>namespace YOTO {class Shader {public:virtual~Shader()default;virtual void Bind()const0;virtual void UnBind()const0;static Shader* Create(const std::string& vertexSrc, const std::string&am…...
每日OJ题_算法_模拟②_力扣495. 提莫攻击
目录 力扣495. 提莫攻击 解析代码 力扣495. 提莫攻击 495. 提莫攻击 难度 简单 在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。 当提莫攻击艾希,…...
freertos 源码分析二 list链表源码
list.c 一、链表初始化 void vListInitialise( List_t * const pxList ) { pxList->pxIndex ( ListItem_t * ) &…...
Peter算法小课堂—Dijkstra最短路算法
大家好,我们人见人爱、花见花开、车见车爆胎的Peter Pan来啦,hia~hia~hia。今天,我们今天来学习毒瘤的最短路算法啦。啊这……什么是Dijkstra算法?长文警告⚠ 正经点啊 手算样例 大家思考一下,你在手算样例的时候&am…...
Python 读取和写入包含中文的csv、xlsx、json文件
背景 最近在做数据的训练,经常需要读取写入csv、xlsx、json文件来获取数据,在这里做简单总结记录。 ps: 读取和写入中文文件时,需要确保文件的编码格式是正确的。通常情况使用UTF-8编码格式。如果使用其他编码格式可能会导致读取或写入时出…...
【算法】利用递归dfs解决二叉树算法题(C++)
文章目录 1. 前言2. 算法题2331.计算布尔二叉树的值129.求根节点到叶节点数字之和LCR047.二叉树剪枝98.验证二叉搜索树230.二叉搜索树中第K小的元素257.二叉树的所有路径 1. 前言 有关 递归 的相关解释与解题 请看下文: 以汉诺塔理解递归、并用递归解决算法题 对于…...
计算机网络_1.6.1 常见的三种计算机网络体系结构
1.6.1 常见的三种计算机网络体系结构 1、OSI(七层协议)标准失败的原因2、TCP/IP参考模型3、三种网络体系结构对比 笔记来源: B站 《深入浅出计算机网络》课程 1、OSI(七层协议)标准失败的原因 (1…...
XML传参方式
export function groupLoginAPI(xmlData) {return http.post(/tis/group/1.0/login, xmlData, {headers: {Content-Type: application/xml,X-Requested-With: AAServer/4.0,}}) }import {groupLoginAPI} from "../api/user"; function (e) { //xml格式传参let groupX…...
Pyecharts炫酷散点图构建指南【第50篇—python:炫酷散点图】
文章目录 Pyecharts炫酷散点图构建指南引言安装Pyecharts基础散点图自定义散点图样式渐变散点图动态散点图高级标注散点图多系列散点图3D散点图时间轴散点图笛卡尔坐标系下的极坐标系散点图 总结: Pyecharts炫酷散点图构建指南 引言 在数据可视化领域,…...
关于爬取所有哔哩哔哩、任意图片、所有音乐、的python脚本语言-Edge浏览器插件 全是干货!
这些都是现成的并且实时更新的!从次解放双手! 首先有自己的edge浏览器基本上都有并且找到插件选项 1.哔哩哔哩视频下载助手(爬取哔哩哔哩视频) bilibili哔哩哔哩视频下载助手 - Microsoft Edge Addons 下面是效果: 2.图…...
压力测试工具-Jmeter使用总结
目录 一.前言 二.线程组 三.线程组的组件 四.线程组-HTTP请求 1、JSON提取器 2、XPATH提取器 3、正则表达式提取器 五.线程组-断言 1、响应断言 2、JSON断言 六.创建测试 1.创建线程组 2.配置元件 3.构造HTTP请求 4.添加HTTP请求头 5.添加断言 6.添加查看结果树…...
[cmake]CMake Error: Could not create named generator Visual Studio 16 2019解决方法
配置flycv时,cmake以下代码会报错第二行的错误,网上解决方法为第三行代码 cmake .. -G "Visual Studio 16 2019 Win64" CMake Error: Could not create named generator Visual Studio 16 2019 cmake .. -G "Visual Studio 16 2019"…...
文墨共鸣功能全解析:StructBERT双塔/单塔架构怎么选?
文墨共鸣功能全解析:StructBERT双塔/单塔架构怎么选? 1. 理解文墨共鸣的核心功能 文墨共鸣是一个融合深度学习技术与传统美学的语义相似度分析系统。它能够判断两段中文文本在语义层面的相似程度,并以独特的水墨风格界面呈现结果。这个系统…...
Janus-Pro-7B惊艳效果:艺术风格迁移(梵高笔触/水墨晕染/像素风)精准控制
Janus-Pro-7B惊艳效果:艺术风格迁移(梵高笔触/水墨晕染/像素风)精准控制 1. 开篇:当AI遇见艺术,一场视觉革命正在发生 想象一下,你手头有一张普通的风景照片,但你想让它变成梵高笔下的星空&am…...
新手必看!手把手教你搭建微调大模型环境,附硬件配置与工具链教程
本文详细介绍了微调大模型的环境搭建与工具链配置,包括硬件要求(不同模型所需显存及推荐显卡)、核心依赖安装(transformers、peft、bitsandbytes等)、Hugging Face生态速览(模型、数据集、Trainerÿ…...
用ESP32-S3做个桌面小玩意:语音助手、GIF时钟和网络摄像头三合一(附开源代码与避坑指南)
ESP32-S3三合一桌面终端:从零构建智能语音助手、动态时钟与摄像监控系统 引言:当极客精神遇见桌面美学 在创客圈里流传着一句话:"如果你桌面上没有至少三个正在吃灰的开发板,说明你不够极客。"而今天我们要做的…...
Ultrascale+ MPSOC PL端以太网调试实录:从DHCP失败到Telnet成功的踩坑全记录
Ultrascale MPSOC PL端以太网调试实录:从DHCP失败到Telnet成功的踩坑全记录 当你在UltraScale MPSoC平台上调试PL端以太网时,是否遇到过这样的场景:硬件连接看似正常,PHY识别成功,链路协商也显示千兆速率,但…...
QML Material项目实战:从零构建一个完整的Material Design应用
QML Material项目实战:从零构建一个完整的Material Design应用 【免费下载链接】qml-material qml-material - 一个在 QtQuick 中实现 Google 材料设计(Material Design)的 QML 部件库,支持跨平台运行。 项目地址: https://gitc…...
终极指南:MoCo性能基准测试揭秘,ImageNet上67.5%准确率如何实现
终极指南:MoCo性能基准测试揭秘,ImageNet上67.5%准确率如何实现 【免费下载链接】moco PyTorch implementation of MoCo: https://arxiv.org/abs/1911.05722 项目地址: https://gitcode.com/gh_mirrors/mo/moco MoCo(Momentum Contras…...
无GPU解决方案:OpenClaw远程调用百川2-13B-4bits云端实例
无GPU解决方案:OpenClaw远程调用百川2-13B-4bits云端实例 1. 为什么选择远程调用方案 去年我尝试在MacBook Pro上本地部署百川2-13B模型时,遇到了显存不足的问题。即使使用量化版本,我的16GB内存笔记本也无法流畅运行推理。这促使我开始探索…...
2026届必备的十大降重复率助手推荐榜单
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 将AI生成文本的机械感予以降低之时,须从词汇、句法、逻辑这三个方面针对指令进行…...
【S32DS实战】S32K311 PIT定时器与IntCtrl_Ip中断联调:从配置到回调的完整流程解析
1. S32K311开发环境与硬件基础 如果你正在使用NXP的S32K311芯片做开发,那PIT定时器和中断控制绝对是必修课。我最近在汽车电子项目里就用这个组合实现了精确的传感器数据采集,实测误差可以控制在微秒级。先说说我的开发环境配置: 硬件&#x…...
