代码随想录day11
20. 有效的括号
● 力扣题目链接
● 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串,判断字符串是否有效。
● 有效字符串需满足:
● 左括号必须用相同类型的右括号闭合。
● 左括号必须以正确的顺序闭合。
● 注意空字符串可被认为是有效字符串。
思路
● 使用栈即可,前括号就入栈对应的后括号
● 如果不是前括号,看栈是否空"{}}“,然后看栈顶元素能否匹配”{]“,不能返回false,能就弹出
● 循环结束看栈是否为空”("
● 时间复杂度O(n) 空间复杂度O(n)
代码
class Solution {public boolean isValid(String s) {Deque<Character> stack = new ArrayDeque();for (int i = 0; i < s.length(); i++) {Character c = s.charAt(i);if (c.equals('(')) {stack.addFirst(')');} else if (c.equals('[')) {stack.addFirst(']');} else if (c.equals('{')) {stack.addFirst('}');} else if (stack.isEmpty() || !stack.peekFirst().equals(c)) {return false;} else {stack.removeFirst();}}return stack.isEmpty();}
}
1047. 删除字符串中的所有相邻重复项
● 力扣题目链接
● 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。
● 在 S 上反复执行重复项删除操作,直到无法继续删除。
● 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。
思路
● 使用栈,遍历字符串,如果栈空或元素不相等,就入栈,否则出栈
● 最后遍历栈元素,从尾部弹出,返回字符串即可
代码
class Solution {public String removeDuplicates(String s) {Deque<Character> stack = new ArrayDeque();for (int i = 0; i < s.length(); i++) {if (stack.isEmpty() || stack.peek() != s.charAt(i)) {stack.addFirst(s.charAt(i));} else {stack.removeFirst();}}StringBuilder builder = new StringBuilder();while (!stack.isEmpty()) {builder.append(stack.removeLast());}return new String(builder);}
}
150. 逆波兰表达式求值
● 力扣题目链接
● 根据 逆波兰表示法,求表达式的值。
● 有效的运算符包括 + , - , * , / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。
● 说明:
● 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。
思路
● 使用栈处理即可,根据不同的情况入栈出栈
代码
class Solution {public int evalRPN(String[] tokens) {Deque<Integer> stack = new ArrayDeque();for (String str : tokens) {if (str.equals("+")) {stack.addFirst(stack.removeFirst() + stack.removeFirst());} else if (str.equals("-")) {int temp = stack.removeFirst();stack.addFirst(stack.removeFirst() - temp);} else if (str.equals("*")) {stack.addFirst(stack.removeFirst() * stack.removeFirst());} else if (str.equals("/")) {int temp = stack.removeFirst();stack.addFirst(stack.removeFirst() / temp);} else {stack.addFirst(Integer.parseInt(str));}}return stack.peekFirst();}
}
相关文章:
代码随想录day11
20. 有效的括号 ● 力扣题目链接 ● 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串,判断字符串是否有效。 ● 有效字符串需满足: ● 左括号必须用相同类型的右括号闭合。 ● 左…...
RabbitMQ实习面试题
RabbitMQ实习面试题 在 RabbitMQ 中,确保生产者消息正确发布以及确保消费者已经消费是非常重要的任务。以下是一些方法和策略,可以帮助您在 RabbitMQ 中实现这些目标: 确保生产者消息正确发布: 持久化消息:将消息设…...
Electron入门,项目运行,只需四步轻松搞定。
electron 简单介绍: 实现:HTML/CSS/JS桌面程序,搭建跨平台桌面应用。 electron 官方文档: [https://electronjs.org/docs] 本文是基于以下2篇文章且自行实践过的,可行性真实有效。 文章1: https://www.cnbl…...
【C++】visualstudio环境安装
记录了部分安装步骤,可能有点不全,参考下,需要的磁盘空间差不多20GB; 下载 https://visualstudio.microsoft.com/zh-hans/vs/ 下载完成: 双击进入安装状态: 根据自己的需求勾选安装项: 选择…...
使用MySQL:5.6和owncloud镜像搭建个人网盘
拉取镜像 [rootkvm ~]# docker pull mysql:5.6[rootkvm ~]# docker pull owncloud启动mysql容器 [rootkvm ~]# docker run -d --name db1 -e MYSQL_ROOT_PASSWORDroot mysql:5.6 db832e4e4333a0e9a7c152a67272721fdbe5381054090c5eb24f90455390a852 [rootkvm ~]# docker ps …...
php中创建对象时传递的参数是构造方法
PHP中创建对象时,可以通过构造方法的参数来传递参数值。构造方法是一个特殊的方法,在创建对象时会自动调用,用于进行对象的初始化操作。 以下是一个示例代码,展示了如何在PHP中使用构造方法传递参数: class MyClass …...
C++并发及互斥保护示例
最近要写一个多线程的并发数据库,主要是希望使用读写锁实现库的并发访问,同时考虑到其他平台(如Iar)没有C的读写锁,需要操作系统提供,就将读写锁封装起来。整个过程还是比较曲折的,碰到了不少问题,在此就简…...
新手常犯的错误,anzo capital昂首资本一招避免少走弯路
新手是不是经常交易中赚不到钱,今天anzo capital昂首资本就盘点一下新手常犯的错误,一招教你少走弯路。 一.随便选择交易账户 开立实时账户时选择正确的账户类型,anzo capital昂首资本教你比较所有提供的账户类型,选择最符合财务…...
Java Vue (el-date-picker组件) 前后端 关于时间格式数据的处理方法
前端使用 elment-ui 组件 el-date-picker 其中组件需要格式化时间,增加属性 value-format"yyyy-MM-dd" 后端 Java 接收参数类型 后端Dto 使用Date接收,并添加JsonFormat注解 JsonFormat(pattern"yyyy-MM-dd") private Date testTi…...
Python爬虫——scrapy_多条管道下载
定义管道类(在pipelines.py里定义) import urllib.requestclass DangDangDownloadPipelines:def process_item(self, item, spider):url http: item.get(src)filename ../books_img/ item.get(name) .jpgurllib.request.urlretrieve(url, filename…...
lombok启动不生效(什么方法都试了,可还是不生效怎么办 ?! 救救我)
使用IntelliJ IDEA 2021.1.3(Ultimate Edition)时提示Lombok不生效 java: You aren’t using a compiler supported by lombok, so lombok will not work and has been disabled. 方式一:我们手动更新一下版本到以下版本 <!--Lombok--&…...
element文本域禁止手动拉伸、两种方式、textarea
文章目录 style方式element自带的禁止拉伸方法建议 style方式 html <el-inputv-model"content":rows"3"class"r_n"type"textarea"maxlength"40"placeholder""style"height: 100%;" />css style…...
c#中lambda表达式缩写推演
Del<string> ml new Del<string>(Notify);//泛型委托的实例化,并关联Nofity方法 Del<string> ml new Del<string>(delegate (string str) { return str.Length; });//将Nofity变更为匿名函数 Del<string> ml delegate(string str)…...
无涯教程-PHP - 循环语句
PHP中的循环用于执行相同的代码块指定的次数。 PHP支持以下四种循环类型。 for - 在代码块中循环指定的次数。 while - 如果且只要指定条件为真,就会循环遍历代码块。 do ... while - 循环执行一次代码块…...
思维进化算法(MEA)优化BP神经网络
随着计算机科学的发展,人们借助适者生存这一进化规则,将计算机科学和生物进化结合起来,逐渐发展形成一类启发式随机搜索算法,这类算法被称为进化算法(Evolutionary Com-putation, EC)。最著名的进化算法有:遗传算法、进化策略、进化规划。与传统算法相比,进化算法的特点是群体搜…...
Kotlin 中的 设计模式
单例模式 饿汉模式 饿汉模式在类初始化的时候就创建了对象,所以不存在线程安全问题。 局限性: 1、如果构造方法中有耗时操作的话,会导致这个类的加载比较慢; 2、饿汉模式一开始就创建实例,但是并没有调用…...
Vulnhub: ICMP: 1靶机
kali:192.168.111.111 靶机:192.168.111.208 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.208 80端口的cms为Monitorr 1.7.6m 搜索发现该版本的cms存在远程代码执行 searchsploit monitorr 漏洞利用 nc本地监听&…...
我的创作纪念日(C++修仙练气期总结)
分享自己最喜欢的一首歌:空想フォレスト—伊東歌詞太郎 机缘 现在想想自己在CSDN创作的原因,一开始其实就是想着拿着博客当做自己的学习笔记,笔记嘛,随便写写,自己看得懂就ok了的态度凸(艹皿艹 )。也是用来作为自己学习…...
css的常见伪元素使用
1.first-line 元素首行设置特殊样式。 效果演示: <div class"top"><p>可以使用 "first-line" 伪元素向文本的首行设置特殊样式。<br> 换行内容 </p></div> .top p::first-line {color: red;} 2.first-lette…...
91. 解码方法
递归法:超时了 从字符串的后面向前计算,每一次递归都缩小子集 public class Solution {public int NumDecodings(string s) {return RecursiveAdd(s, s.Length - 1);}public int RecursiveAdd(string s, int index) {// 已经到最后一个元素if(index <…...
从校园到职场:技术新人必须完成的3个思维转变
从象牙塔迈入软件测试的真实战场,许多技术新人会感到一种强烈的“水土不服”。在学校里,你的目标是交出一份正确的作业或通过一场考试,评价体系清晰且单一。但在职场,测试工程师面对的是不完整的文档、随时变更的需求和“为什么上…...
ServerPackCreator:3分钟搞定Minecraft服务器包配置的智能自动化工具
ServerPackCreator:3分钟搞定Minecraft服务器包配置的智能自动化工具 【免费下载链接】ServerPackCreator Create a server pack from a Minecraft Forge, NeoForge, Fabric, LegacyFabric or Quilt modpack! 项目地址: https://gitcode.com/gh_mirrors/se/Server…...
AMD Carrizo架构解析:SoC集成与HSA异构计算如何重塑移动处理器
1. 从“胶水粘合”到“原生融合”:Carrizo与Carrizo-L的架构革命2014年底,当AMD在新加坡的“计算的未来”活动上拿出Carrizo和Carrizo-L这两颗芯片时,现场的反应可能比预想的要平静一些。毕竟,对于习惯了每年“挤牙膏”式升级的行…...
接入taotoken服务后stm32设备端api调用量的可视化分析
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 接入taotoken服务后stm32设备端api调用量的可视化分析 1. 背景与需求 在嵌入式AI应用开发中,将大模型能力集成到STM32…...
嵌入式开发中CHM文件的应用与优化
1. CHM文件在嵌入式开发中的核心价值CHM(Compiled HTML Help)作为微软推出的编译型帮助文档格式,在嵌入式开发领域已经服役超过20年。这种将HTML文档、索引和搜索功能打包成单一文件的格式,特别适合Keil MDK这类嵌入式开发环境的技…...
手把手教你配置i.MX RT1052的BOOT引脚:从HyperFlash到QSPI的启动选择实战
手把手教你配置i.MX RT1052的BOOT引脚:从HyperFlash到QSPI的启动选择实战 在嵌入式系统开发中,启动配置是硬件工程师和开发者面临的第一个关键挑战。i.MX RT1052作为一款高性能跨界处理器,其灵活的启动选项既带来了强大的适应性,也…...
AI治理实战:从公平性、可解释性到MLOps全流程落地
1. 项目概述与核心价值最近在整理开源项目时,发现了一个名为“AI_governance”的仓库,作者是bhavya7995。这个标题立刻引起了我的兴趣。在AI技术飞速渗透到各行各业,从代码生成到内容创作,从自动驾驶到医疗诊断的今天,…...
对话系统情感交互实践:从意图识别到动态话术生成的夸夸技能库设计
1. 项目概述:一个“夸夸”导航技能库的诞生最近在GitHub上看到一个挺有意思的项目,叫“kuakua-navigator-skills”。光看名字,你可能会有点摸不着头脑——“夸夸”和“导航技能”是怎么联系在一起的?这其实是一个典型的“命名即内…...
网盘下载体验革命:8大平台直链获取工具完全指南
网盘下载体验革命:8大平台直链获取工具完全指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 /…...
初创团队如何利用Taotoken管理多模型API成本
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初创团队如何利用Taotoken管理多模型API成本 对于初创团队而言,在快速迭代产品、集成多个大语言模型以增强功能时&…...
