【每日一题Day195】LC1003检查替换后的词是否有效 | 栈
检查替换后的词是否有效【LC1003】
给你一个字符串
s,请你判断它是否 有效 。字符串
s有效 需要满足:假设开始有一个空字符串t = "",你可以执行 任意次 下述操作将t转换为s:
- 将字符串
"abc"插入到t中的任意位置。形式上,t变为tleft + "abc" + tright,其中t == tleft + tright。注意,tleft和tright可能为 空 。如果字符串
s有效,则返回true;否则,返回false。
刚开始想的是根据数量判断的,WA了,好久没用栈进行字符匹配了,经验++
-
思路
同括号匹配,构造的过程可以视为在字符串s中消除连续的
abc的过程,按照匹配规则将字符压栈及出栈,如果最后栈为空,那么返回true- 遇到字符a,直接入栈
- 遇到字符b,如果栈顶元素不为字符a,那么返回false;栈顶字符为字符a,再将字符a弹出、字符b压入栈中
- 遇到字符c,如果栈顶元素不为字符b,那么返回false;栈顶字符为字符b,再将字符b弹出、字符c不需要压入栈中,此时相当于在该位置插入
-
实现
class Solution {public boolean isValid(String s) {Deque<Character> queue = new LinkedList<>();for (char c : s.toCharArray()){if (c == 'a'){queue.addLast(c);}else if (c == 'b'){if (queue.isEmpty() || queue.peekLast() != 'a'){return false;}queue.pollLast();queue.addLast(c);}else{if (queue.isEmpty() || queue.peekLast() != 'b'){return false;}queue.pollLast();}}return queue.isEmpty();} }- 复杂度
- 时间复杂度: O ( n ) O(n) O(n)
- 空间复杂度: O ( n ) O(n) O(n)
- 复杂度
相关文章:
【每日一题Day195】LC1003检查替换后的词是否有效 | 栈
检查替换后的词是否有效【LC1003】 给你一个字符串 s ,请你判断它是否 有效 。 字符串 s 有效 需要满足:假设开始有一个空字符串 t "" ,你可以执行 任意次 下述操作将 t 转换为 s : 将字符串 "abc" 插入到 t…...
简单理解什么是序列化
为什么要序列化 序列化的目的就是为了对象可以在网络层进行传输, 比如通过后端传给前端数据。 什么是序列化 我们以Java为例。 序列化就是把对象转化为可传输的字节序列过程,这个字节序列可以是字符串,比如JSON格式的字符串,把…...
Django初识
1、简介 Django,是用python语言写的开源web开发框架,并遵循MVC设计。劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架,于2005年7月在BSD许可证下发布。这个名称来源于比利时的爵士音乐家DjangoReinhardt&#…...
ARM嵌入式编译器-volatile关键字对编译器优化的影响
volatile限定符告知计算机,其他agent(而不是变量所在的程序)可以改变该变量的值。通常它被用于硬件地址以及在其他程序或同时运行的线程中共享数据。要求编译器不要对其描述的对象作优化处理,对它的读写都需要从内存中访问。 使用…...
销售数据分析怎么做?这篇文章说清楚了
如何分析销售数据?分析销售数据有哪些指标?销售数据分析有什么作用? 销售数据是不是得通过数据分析软件啊? 本文将为您解答疑惑—— 一、分析销售数据的指标 从两个层面上来讲,一个是对销售情况的整体把控…...
二十六、ISIS技术总结
文章目录 ISIS 概述一、路由协议总结1、路由优先级2、分类 二、ISIS 协议特点1、特点2、ISIS 路由器的种类 三、ISIS 配置1、基础配置2、network-entity含义3、router id 和系统id转换规则 四、ISIS 开销计算1、Narrow 模式2、Wide 模式 五、 ISIS 和 OSPF 的区别 ISIS 概述 I…...
三菱m70 m80系统解密 三菱m80机床到期解锁
我们从操作系统的发展讲起,为什么要有线程这个概念出现。《Java多线程学习笔记(一) 初遇篇》讲Java平台下的线程,如何使用和创建,以及引入线程后所面临的问题,为了解决线程安全问题,Java引入的机制,这也是《…...
InnoDB 磁盘结构之数据字典和双写缓冲区
数据字典(InnoDB Data Dictionary) MySQL中,数据字典包括了: 表结构、数据库名或表名、字段的数据类型、视图、索引、表字段信息、MySQL版本信息、存储过程、触发器等内容 InnoDB数据字典由内部系统表组成,这些表包含用于查找表…...
Django模型层part two - 多表关系创建和多表操作
前言 继续上面一篇文章的内容,本文介绍多表操作。使用django ORM可以创建多表关系,并且也支持多张表之间的操作,以创建表关系和查询两部分说明django ORM的多表操作。以作者、图书、出版社和作者信息几张表作为案例进行说明。 创建表关系 …...
智能优化算法:浣熊优化算法-附代码
智能优化算法:浣熊优化算法 文章目录 智能优化算法:浣熊优化算法1.浣熊优化算法1.1 初始化1.2 阶段一:狩猎和攻击(探索阶段) 2.实验结果3.参考文献4. Matlab 摘要:浣熊优化算法(Coati Optimizat…...
【51单片机】数码管显示(样例展示以及异常分析)
🎊专栏【51单片机】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 ⭐数码管 比如要显示“6”,那么下面图片中,AFEDCG=1,B=0 对应到数码管上,就是 ⭐原理 🎊P22~P24控制LED1~...
Android InputChannel事件发送接收系统分析
本文基于Android12。 InputChannel表示其他进程通过文件描述符传递输入事件到View的通道,因为需要跨进程传输,实现了Parcelable序列化接口,所以也能够理解Java层的InputChannel后面为什么使用copyTo()方法初始化。 输入事件的接收方是View&…...
Java时间类(五)-- LocalDate()类
目录 引言: 1. LocalDate的概述: 2. LocalDate的常用方法: 引言: (1)Date存在的缺陷: 如果不格式化,打印出的日期可读性差://获取当前时间Date date = new Date();System.out.println("date = " + date); //date = Wed May 03 22:30:24 CST...
用手机号码归属地 API 开发的应用推荐
引言 手机号码归属地 API是一种提供手机号码归属地信息的接口,通过该接口,可以获取手机号码所属的省份、城市、运营商等信息。它可以帮助企业更好地了解客户,为个性化推荐和精准广告投放提供数据支持。作为一种数据服务,手机号码…...
测试从业第 3 年,我看到了终点......
先说明,今天的内容,是写给想成为高级测试开发、自动化测试专家的人看的,因为,它可能颠覆你的认知。 众所周知,如今无论是大厂还是中小厂,自动化测试基本是标配了,毕竟像双11、618 这种活动中庞…...
结巴分词原理分析
结巴分词器工作原理 结巴分词是一款python写成的开源中文分词器,分词过程大致如下: 首先,结巴使用正则表达式将输入文本切割成若干中文块,接着对每个中文块B做处理,将B转成有向无环图(DAG)。DAG是以{key:list[i,j...…...
JavaEE 第三-四周
计算机Z20-第3-4周作业 总分:100分 得分:74.2分 1 . 填空题 简单 5分 在web.xml文件中,<url-pattern>/xxxxServlet</url-pattern>中的第一个‘/’表示__________。 学生答案 当前web应用程序的根目录 2 . 填空题 简…...
Ububtu20.04 无法连接外屏(显卡驱动问题导致)
Ububtu20.04 无法显示第二个屏幕(显卡驱动问题) Ububtu20.04 无法显示第二个屏幕(显卡驱动问题) Ububtu20.04 无法显示第二个屏幕(显卡驱动问题) 1. 问题描述2. 解决方案 1. 问题描述 一开始我的ububt…...
配置JDK环境变量
文章目录 查看电脑系统下载及安装JavaSE配置系统环境变量测试环境变量配置是否成功。 查看电脑系统 运行输入框中输入:control 下载及安装JavaSE 这个从网上下载就行,jdk-8u141-windows-x64.exe,不提供下载方式了。 主要讲解安装过程&a…...
保护移动设备免受恶意软件侵害优秀方法
几天前,移动恶意软件攻击增加了500%显然,我们大多数人都不知道不能很好地保护我们的手机下面小编揭秘有效保护移动设备免受恶意软件侵害的最佳方法。 1、使用移动反恶意软件 恶意软件很容易感染智能手机和平板电脑,因此在设备上安装可靠的…...
w3x2lni:魔兽地图跨版本转换的技术架构与实战指南
w3x2lni:魔兽地图跨版本转换的技术架构与实战指南 【免费下载链接】w3x2lni 魔兽地图格式转换工具 项目地址: https://gitcode.com/gh_mirrors/w3/w3x2lni 一、价值定位:破解魔兽地图版本兼容难题 魔兽争霸III地图开发者长期面临版本碎片化挑战&…...
OpenClaw任务编排技巧:Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF复杂流程分解策略
OpenClaw任务编排技巧:Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF复杂流程分解策略 1. 为什么需要任务编排 上周我尝试用OpenClaw自动完成一篇技术博客的写作和发布,结果遭遇了连环翻车:模型先花20分钟生成了偏离主题的初稿&…...
OpenClaw定时任务管理:Qwen3.5-4B-Claude模型驱动智能提醒系统
OpenClaw定时任务管理:Qwen3.5-4B-Claude模型驱动智能提醒系统 1. 为什么需要AI驱动的定时任务系统 上个月我连续错过了三个重要会议,直到同事发消息询问"人到哪了"才猛然惊醒。这种尴尬促使我开始寻找解决方案——传统日历提醒太被动&#…...
华为AR路由器VRRP配置实战:从单点故障到流量黑洞,一个实验全搞定
华为AR路由器VRRP高可用实战:规避单点故障与流量黑洞的深度解析 在现网架构中,网关设备的可靠性直接决定了整个网络的稳定性。想象一下这样的场景:当核心网关突然宕机,整个办公区的网络瞬间瘫痪,业务系统中断ÿ…...
3步彻底解决Umi-OCR Rapid版本HTTP服务无响应问题:参数配置完全指南
3步彻底解决Umi-OCR Rapid版本HTTP服务无响应问题:参数配置完全指南 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件,适用于Windows系统,支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://git…...
RVC 技术指南:从问题解决到效率提升
RVC 技术指南:从问题解决到效率提升 【免费下载链接】rvc RVC is a Linux console UI for vSphere, built on the RbVmomi bindings to the vSphere API. 项目地址: https://gitcode.com/gh_mirrors/rvc/rvc 问题场景→核心原理→分步方案→进阶技巧 一、环…...
实战演练,用快马生成GitHub团队协作项目,掌握Issue管理和CI/CD集成
最近在团队协作开发时,发现很多新成员对GitHub的完整工作流不太熟悉。于是我用InsCode(快马)平台快速搭建了一个GitHub实战项目,模拟真实开发场景。这个项目特别适合想系统学习团队协作的小伙伴,下面分享我的实践过程: 项目初始化…...
自学C#的第三天
今天自学了c#,并看了相关的unity课程视频,加油,争取找到一份好的实习,简历投递效果不是很成功,打算给我的qt项目重新完善一下...
项目分享|LLM驱动的多市场股票智能分析器
项目分享|LLM驱动的多市场股票智能分析器 引言 在股票投资分析中,实时行情跟踪、多维度数据解析和科学决策判断是核心需求,而个人投资者往往面临数据分散、分析耗时、缺乏专业工具的问题。由ZhuLinsen开源的daily_stock_analysis项目完美解决了这些痛点…...
Java 17 新特性实战:现代 Java 开发的优雅实践
Java 17 新特性实战:现代 Java 开发的优雅实践 前言 大家好。最近很多读者朋友询问 Java 17 的新特性以及如何在项目中应用这些特性。作为一个长期使用 Java 的架构师,今天我想分享一下 Java 17 的新特性以及在实际项目中的应用经验。 Java 17 的核心新特…...
