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

news2024/11/17 11:37:05

来源:力扣(LeetCode)

描述:

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

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

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

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

示例 1:

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:

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 由小写英文字母、空格和数字 0 到 9 组成(包含 0 和 9)
  • s 中数字 token 的数目在 2 和 100 之间(包含 2 和 100)
  • s 中的 token 之间由单个空格分隔
  • s 中至少有 两个 数字
  • s 中的每个数字都是一个 小于 100 的 正 数,且不含前导零
  • s 不含前导或尾随空格

方法:直接遍历

思路与算法

  题目要求检查给定的字符串 s 中 token 为数字时是否从左到右严格递增,根据题意可知相邻的 token 之间由空格分割,我们按照要求依次取出字符串中的每个 token,如果当前的 token 由数字组成,将该 token 转换为十进制数 cur,设前一个数字 token 转换后的整数 pre,检验过程如下:

  • 如果 cur 大于 pre,则认为当前的 token 满足递增要求,更新 pre 为 cur,并检测下一个数字 token 是否满足递增;
  • 如果 cur 小于或者等于 pre,则认为不满足递增要求,返回 false;

  由于题目中的每个数字 token 转换后的十进制数均为正整数且小于 100,因此我们可以初始化 pre 等于 0,我们依次检测每个为数字的 token 是否满足题目要求即可。

代码:

class Solution {
public:
    bool areNumbersAscending(string s) {
        int pre = 0, pos = 0;
        while (pos < s.size()) {
            if (isdigit(s[pos])) {
                int cur = 0;
                while (pos < s.size() && isdigit(s[pos])) {
                    cur = cur * 10 + s[pos] - '0';
                    pos++;
                }
                if (cur <= pre) {
                    return false;
                }
                pre = cur;
            } else {
                pos++;
            }
        }
        return true;
    }
};

执行用时:4 ms, 在所有 C++ 提交中击败了30.38%的用户
内存消耗:6.1 MB, 在所有 C++ 提交中击败了77.85%的用户
复杂度分析
时间复杂度:O(n),其中 n 表示字符串的长度。我们只需遍历一遍字符串即可。
空间复杂度:O(1)。仅用到若干额外变量。
author:LeetCode-Solution

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

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

相关文章

ORA-00600 kcratr_nab_less_than_odr 问题处理

问题&#xff1a;ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [196495], [39399], [39460], [], [], [], [], [], [], []导致原因&#xff1a;可能是由于服务器宕机&#xff0c;控制文件的缺失&#xff0c;或者在线日志文件在实例恢复时不完整1、数据库未…

5G边缘计算网关助力5G工业物联网智能化建设

5G边缘计算&#xff0c;凭借高带宽、高可靠、低时延、移动性等特性&#xff0c;推动工业生产物联网发展趋势&#xff0c;实现工业更快、更精准通信及数据共享。边缘计算网关下5G工业物联网远程感知生产一线&#xff0c;工控数字化、自动化、智能化&#xff0c;降低人物力资源成…

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

【LetMeFly】2042.检查句子中的数字是否递增 力扣题目链接&#xff1a;https://leetcode.cn/problems/check-if-numbers-are-ascending-in-a-sentence/ 句子是由若干 token 组成的一个列表&#xff0c;token 间用 单个 空格分隔&#xff0c;句子没有前导或尾随空格。每个 tok…

【计算机体系结构】指令集并行(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直流单电源…