LeetCode 2042. 检查句子中的数字是否递增

news2024/10/5 7:27:32

【LetMeFly】2042.检查句子中的数字是否递增

力扣题目链接:https://leetcode.cn/problems/check-if-numbers-are-ascending-in-a-sentence/

句子是由若干 token 组成的一个列表,token 间用 单个 空格分隔,句子没有前导或尾随空格。每个 token 要么是一个由数字 0-9 组成的不含前导零的 正整数 ,要么是一个由小写英文字母组成的 单词

  • 示例,"a puppy has 2 eyes 4 legs" 是一个由 7 个 token 组成的句子:"2""4" 是数字,其他像 "puppy" 这样的 tokens 属于单词。

给你一个表示句子的字符串 s ,你需要检查 s 中的 全部 数字是否从左到右严格递增(即,除了最后一个数字,s 中的 每个 数字都严格小于它 右侧 的数字)。

如果满足题目要求,返回 true ,否则,返回 false

 

示例 1:

example-1

输入:s = "1 box has 3 blue 4 red 6 green and 12 yellow marbles"
输出:true
解释:句子中的数字是:1, 3, 4, 6, 12 。
这些数字是按从左到右严格递增的 1 < 3 < 4 < 6 < 12 。

示例 2:

输入:s = "hello world 5 x 5"
输出:false
解释:句子中的数字是:5, 5 。这些数字不是严格递增的。

示例 3:

example-3

输入:s = "sunset is at 7 51 pm overnight lows will be in the low 50 and 60 s"
输出:false
解释:s 中的数字是:7, 51, 50, 60 。这些数字不是严格递增的。

示例 4:

输入:s = "4 5 11 26"
输出:true
解释:s 中的数字是:4, 5, 11, 26 。
这些数字是按从左到右严格递增的:4 < 5 < 11 < 26 。

 

提示:

  • 3 <= s.length <= 200
  • s 由小写英文字母、空格和数字 09 组成(包含 09
  • s 中数字 token 的数目在 2100 之间(包含 2100
  • s 中的 token 之间由单个空格分隔
  • s 中至少有 两个 数字
  • s 中的每个数字都是一个 小于 100 数,且不含前导零
  • s 不含前导或尾随空格

方法一:遍历

用一个整型变量lastVal记录上一个“数字token”是多少,初始值是“极小值”0

用一个整型变量thisVal记录当前遍历到的“数字token”,若当前遍历到的不是数字,则将thisVal置为0

接着遍历字符串,如果当前字符为数字,那么就将thisVal乘以10并加上当前数字

如果当前字符不是数字,并且上一个字符为数字(thisVal ≠ 0),那么就比较这个数字和上一个数字的大小(是否thisVal > lastVal),若不合法则直接返回false

字符串遍历结束后,看thisVal是否非零,若非零则再进行一次比较(说明字符串最后一个字符是数字)

  • 时间复杂度 O ( l e n ( s ) ) O(len(s)) O(len(s))
  • 空间复杂度 O ( 1 ) O(1) O(1)

AC代码

C++

class Solution {
public:
    bool areNumbersAscending(string s) {
        int lastVal = 0;
        int thisVal = 0;
        for (char c : s) {
            if (isdigit(c)) {
                thisVal = thisVal * 10 + c - '0';
            }
            else {
                if (thisVal) {  // 数字转字母
                    if (lastVal >= thisVal)
                        return false;
                    lastVal = thisVal;
                    thisVal = 0;
                }
            }
        }
        if (thisVal) {
            if (lastVal >= thisVal)
                return false;
        }
        return true;
    }
};

同步发文于CSDN,原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/128538008

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

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

相关文章

【计算机体系结构】指令集并行(ILP)动态调度算法:Tomasulo实现代码(Tomasulo Algorithm Implementation)

Tomasulo Algorithm Implementation &#xff08;本文章仅提供算法实现过程&#xff0c;具体算法思想请查阅教科书&#xff09; 如果觉得这篇文章有用&#xff0c;请记得点个赞并收藏哦&#xff01; 1.Introduction Tomasulo算法用于指令的动态调度&#xff0c;允许乱序执行…

C C++内存对齐以及特殊类的大小

目录C语言内存对齐现象内存对齐规则为什么存在内存对齐如果struct or class中存在成员函数时的大小空类大小为1Cclass存在虚函数时的大小C语言 内存对齐现象 C语言中结构体的大小往往不是结构体中各种数据类型的加和&#xff0c;因为存在内存对齐; struct S {double d;//8字…

Linux常用系统日志

文章目录一 常用系统日志二 系统日志优先级三 其他日志文件一 常用系统日志 日志文件用途/var/log/messages记录大多数系统日志信息&#xff0c;包括启动、IO错误、网络和程序等问题/var/log/secure记录安全和身份验证等相关消息和错误/var/logrsyslog将所有日志文件写入到该目…

Nacos 漏洞利用

Nacos 漏洞利用 1.漏洞描述&#xff1a; Alibaba Nacos是阿里巴巴推出来的一个新开源项目&#xff0c;是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。致力于帮助发现、配置和管理微服务。Nacos提供了一组简单易用的特性集&#xff0c;可以快速实现动态…

ASP.NET企业智能办公OA系统源码带文档【源码免费分享】

ASP.NET企业智能办公OA系统源码带文档 需要源码学习可私信我获取&#xff01; 本系统特色功能&#xff1a; 1&#xff1a;自定义工作流程&#xff0c;系统所有参数可自定义配置&#xff0c;支持多分公司、多部门架构 2&#xff1a;采用三层结构设计软件&#xff0c;系统扩容性…

vivo 实时计算平台建设实践

作者&#xff1a;vivo 互联网实时计算团队- Chen Tao 本文根据“2022 vivo开发者大会"现场演讲内容整理而成。 vivo 实时计算平台是 vivo 实时团队基于 Apache Flink 计算引擎自研的覆盖实时流数据接入、开发、部署、运维和运营全流程的一站式数据建设与治理平台。 一、v…

【云边有个小卖部】阅读笔记

童年就像童话&#xff0c;这是他们在童话里第一次相遇。 那么热的夏天&#xff0c;少年的后背被女孩的悲伤烫出一个洞&#xff0c;一直贯穿到心脏。 刘十三被欺负得最惨&#xff0c;却想保护凶巴巴的程霜。 每当她笑的时候&#xff0c;就让他想起夏天灌木丛里的萤火虫&#xff…

2022年专业连锁行业研究报告

第一章 行业概况 专业连锁经营是一种商业组织形式和经营制度&#xff0c;是指经营同类商品或服务的若干个企业&#xff0c;以一定的形式组成一个联合体&#xff0c;在整体规划下进行专业化分工&#xff0c;并在分工基础上实施集中化管理&#xff0c;把独立的经营活动组合成整体…

力扣sql入门篇(七)

力扣sql入门篇(七) 1 查询近30天用户活跃数 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 #注意因为between是两端都包含,仅统计30天,因而间隔天数写成29天 SELECT activity_date day,count(distinct user_id) active_users FROM Activity WHERE a…

使用Windbg分析多线程临界区死锁问题分享

目录 1、多线程死锁场景及多线程锁的类型 1.1、发生死锁的场景说明 1.2、锁的类型 2、问题实例说明 3、使用Windbg初步分析 4、进一步分析死锁 4.1、使用!locks命令查看临界区对象信息 4.2、通过占用临界区锁的线程id找到目标线程 4.3、如何将!locks命令打印出来的临界…

# 分布式理论协议与算法 第二弹 ACID原则

ACID 原则是在 1970年 被 Jim Gray 定义&#xff0c;用以表示事务操作&#xff1a;一个事务是指对数据库状态进行改变的一系列操作变成一个单个序列逻辑元操作&#xff0c;数据库一般在启动时会提供事务机制&#xff0c;包括事务启动 停止 取消或回滚。 但是上述事务机制并不真…

(1分钟)速通ikdtree

Ikdtree算法来自fast-lio2 其中i是incremental的缩写&#xff0c;表示增量的kdtree。 ​ Ikdtree算法来自fast-lio2 其中i是incremental的缩写&#xff0c;表示增量的kdtree。 ​ Ikdtree算法来自fast-lio2 其中i是incremental的缩写&#xff0c;表示增量的kdtree。 ​ 编辑…

性能成本难两全?OpenMLDB 实时计算双存储引擎让你不必纠结(附测评报告)

内存和磁盘的双存储引擎架构 1.1 使用场景描述 OpenMLDB 的线上服务部分为了满足不同的性能和成本需求&#xff0c;提供了两种分别基于内存和磁盘的存储引擎。关于这两种存储引擎的使用考量&#xff0c;和推荐匹配场景&#xff0c;见如下表。 [外链图片转存失败,源站可能有防…

使用ES Term query查询时一定要注意的地方

文章目录一、Term query简介二、Term query和Match query对比1. 数据准备2. 使用Match query查询3. 使用Term query查询三、分词器修改字段值的场景1. 删除大多数标点符号2. 英文大写转小写3. 超过max_token_length部分单独拆分一、Term query简介 使用Term query可以根据精确…

【计算机模型机设计】8指令多周期(硬布线)MIPS CPU设计报告

2023年第一篇文章来咯~ 8指令多周期&#xff08;硬布线&#xff09;MIPS CPU设计报告一、设计概述&#xff08;基本类似于上一篇&#xff09;1.1设计目的1.2设计任务1.3设计要求1.4技术指标二、总体方案设计2.1主要功能部件2.2数据通路设计三、详细设计与实现3.1主要功能部件的…

Cookie 和 Session、实现用户登录逻辑

Cookie 和 Session一、回忆 Cookie二、理解会话机制 (Session)三、Cookie 和 Session 的区别四、核心方法4.1 HttpServletRequest 类中的相关方法4.2 HttpServletResponse 类中的相关方法4.3 HttpSession 类中的相关方法4.4 Cookie 类中的相关方法五、代码示例: 实现用户登陆5.…

转速传感器信号隔离变送模块PCB焊接方波信号输出

特点 转速传感器信号直接输入&#xff0c;方波信号输出正弦波、锯齿波信号输入&#xff0c;方波信号输出200mV峰值微弱信号的放大与整形不改变原波形频率&#xff0c;响应速度快电源、信号&#xff1a;输入/输出 3000VDC三隔离辅助电源&#xff1a;5V、12V、15V或24V直流单电源…

【学Vue就像玩一样】什么是计算属性?什么使监视属性?

目录 1.计算属性 2.监视属性 2.1监视属性 2.2深度监视 3.computed和watch的区别 本栏会细致的将Vue划分为两大模块&#xff0c;基础篇&#xff0c;进阶篇。想要顺利通关vue篇首先要拥有三剑客&#xff0c;当然node ajax法宝也会辅佐你通关的&#xff0c;在学习的途中如果遇…

【回答问题】ChatGPT上线了!给我推荐20个比较流行的自动驾驶算法模型

给我推荐20个比较流行的自动驾驶算法模型 当前比较流行的自动驾驶模型有&#xff1a; 卷积神经网络&#xff08;CNN&#xff09; 长短时记忆网络&#xff08;LSTM&#xff09; 自适应调和滤波器&#xff08;ADF&#xff09; 自适应估计滤波器&#xff08;AEF&#xff09; 线性…

Vue组件及组件之间的通信

目录 一、Vue脚手架的使用 1、通过命令行使用vue-cli的指令创建&#xff1a;vue init webpack 项目名称 2、使用webStorm软件&#xff1a;本质仍然使用vue脚手架 3、使用vue ui创建&#xff1a;vue提供的图形化的操作界面 二、Vue的组件和组件之间的通信 1、组件&#xff…