【1805. 字符串中不同整数的数目】

news2024/12/23 5:31:00

来源:力扣(LeetCode)

描述:

给你一个字符串 word ,该字符串由数字和小写英文字母组成。

请你用空格替换每个不是数字的字符。例如,"a123bc34d8ef34" 将会变成 " 123 34 8 34" 。注意,剩下的这些整数为(相邻彼此至少有一个空格隔开):"123""34""8""34"

返回对 word 完成替换后形成的 不同 整数的数目。

只有当两个整数的 不含前导零 的十进制表示不同, 才认为这两个整数也不同。

示例 1:

输入:word = "a123bc34d8ef34"
输出:3
解释:不同的整数有 "123""34""8" 。注意,"34" 只计数一次。

示例 2:

输入:word = "leet1234code234"
输出:2

示例 3:

输入:word = "a1b01c001"
输出:1
解释:"1""01""001" 视为同一个整数的十进制表示,因为在比较十进制值时会忽略前导零的存在。

提示:

  • 1 <= word.length <= 1000
  • word 由数字和小写英文字母组成

方法:双指针

  对于每个字符串中的整数部分,使用指针 p1 指向整数部分的第一个字符,指针 p2 指向整数部分最后一个字符的下一个位置。为了去除前导零,如果 p2 − p1 > 1 且 word[p1] = ‘0’ ,我们将 p1 前移一位,即 p1 = p1 + 1 。将区间 [p1, p2) 对应的字符串插入到哈希集合中,最终字符串中不同整数的数目等于哈希集合的元素数目。

代码:

class Solution {
public:
    int numDifferentIntegers(string word) {
        unordered_set<string> s;
        int n = word.size(), p1 = 0, p2;
        while (true) {
            while (p1 < n && !isdigit(word[p1])) {
                p1++;
            }
            if (p1 == n) {
                break;
            }
            p2 = p1;
            while (p2 < n && isdigit(word[p2])) {
                p2++;
            }
            while (p2 - p1 > 1 && word[p1] == '0') { // 去除前导 0
                p1++;
            }
            s.insert(word.substr(p1, p2 - p1));
            p1 = p2;
        }
        return s.size();
    }
};

1

复杂度分析
时间复杂度: O(n),其中 n 是字符串 word 的长度。
空间复杂度: O(n)。哈希集合需要占用 O(n) 的空间。
author:力扣官方题解

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

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

相关文章

[附源码]JAVA毕业设计砂石矿山管理系统(系统+LW)

[附源码]JAVA毕业设计砂石矿山管理系统&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术…

如何将Word转成PDF格式?这三种方法总有一个适合你

如何把Word文档转换成PDF文件格式呢&#xff1f;大家在传输文件的时候&#xff0c;相信很多小伙伴都喜欢不使用PDF文件格式&#xff0c;因为它非常的稳定&#xff0c;在浏览文件的时候格式不会乱&#xff0c;但我们都是先做好Word文档&#xff0c;然后再把它转成PDF格式&#x…

诗人贺伟陪你看世界杯

国内三大拥有转播权的主流平台&#xff08;央视、中国移动咪咕和抖音&#xff09;都已经公布了解说阵容 CCTV解说阵容 贺炜、刘嘉远、朱晓雨、曾侃、李晨明、孙思辰、邵圣懿。 此次央视世界杯采取了“单口”解说的模式&#xff0c;这多少还是会让球迷们感到错愕。以往的足球盛…

ubuntu+Docker双容器docker-compose部署Django+Vue项目(2-Django)

文章目录部署Django后端接口下载Python环境及一些尝试pip包管理运行项目容器报错1(查询容器IP解决)报错2(pvsite_uwsgi.ini文件配置socket还是http)报错3(用http先)用python manage.py runserver运行项目先报错4(下载cryptography库)回到用uwsgidjango运行成功先在uwsgidjango中…

FT2004(D2000)开发实战之PBF配置

一 PBF概述 PBF英文全称Phytium Base Firmware,PBF主要作用: 初始化PLL设置CPU主频初始化DDR4初始化PCIe控制器初始化全局中断和定时器跳转到U-boot 飞腾FT2004芯片BIOS固件由两部分构成,PBF+U-boot或者PBF+UEFI,最终的BIOS烧写⽂件由PBF固件包中的脚本程序⽣成,当然在生…

为什么消费返利模式层出不穷?这个消费返利玩法值得你借鉴

大家好&#xff0c;我是林工&#xff0c;不知道大家听说过消费返利没有&#xff1f;消费返利是互联网常见的一个商业模式&#xff0c;是指互联网平台将自己所销售的商品和服务让渡给消费者并获得一定比例的报酬&#xff0c;消费者通过平台享受到的佣金和消费总额&#xff08;金…

正则表达式简介

一、介绍 正则表达式(Regular Expression)是一种文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之间的字母&#xff09;和特殊字符&#xff08;称为"元字符"&#xff09;。 正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字…

观察|数字营销正当时,企业如何玩转短视频?

​​双十二购物狂欢节即将来临&#xff0c;从手机APP的开屏广告到线下随处可见的广告屏&#xff0c;铺天盖地的短视频成为各大品牌宣传造势的重头戏。凭借具有强烈视觉冲击力的画面和魔性的配音配乐&#xff0c;短视频已然超越传统图文广告&#xff0c;迅速成长为占领受众心智的…

Java数据结构与Java算法学习Day05---二叉树(简略笔记记录)

目录 一、二叉树 79 1.1树的基本定义79 1.2数的相关术语 80 1.3二叉树的基本定义 81 1.4二叉查找树的创建 82 1.4.1二叉树查找树创建---插入方法&#xff08;put&#xff09; 83 1.4.2二叉树查找树创建---获取方法&#xff08;get&#xff09;84 1.4.3二叉树查找树创建…

大数据学习:进程管理(2)

文章目录一、系统资源监控1、free命令2、uname命令3、uptime命令4、netstat命令5、vmstat命令二、任务管理1、前台进程2、后台进程3、操作案例一、系统资源监控 1、free命令 观察内存&#xff08;memory&#xff09;使用情况 2、uname命令 查阅系统与核心相关信息 3、up…

JavaEE技术点:MySQL目录及基本命令介绍

1.MySQL目录介绍 (1)首先来看MySQL的安装目录&#xff0c;如图1-1所示&#xff1a; 图1-1 MySQL的安装目录 (2)图1-1中的bin目录中存放的是二进制的可执行文件&#xff0c;如图1-2所示&#xff1a; 图1-2 bin目录结构 (3)图1-2中的mysqld.exe是服务器程序&#xff0c;必须先…

山东:推进自然资源确权登记 助力自然资源保护发展

2019年&#xff0c;自然资源统一确权登记工作启动以来&#xff0c;山东省认真贯彻生态文明思想&#xff0c;坚决扛牢政治责任&#xff0c;按照国家统一部署&#xff0c;担当作为、加压奋进&#xff0c;在探索推进自然资源确权登记法治化、规范化、标准化、信息化等方面取得了积…

用亚马逊自养号进行测评的好处

自养号顾名思义就是自己用真实环境养出来的买家账号。通过真实的邮箱、手机号码和注册地当地真实收货地址&#xff0c;包括IP等等&#xff0c;但是也有很多卖家没有完全认清自养号的好处&#xff0c;下面就看看用亚马逊自养号进行测评的好处 对于卖家来说&#xff0c;使用自养号…

【超全面】机器学习中的超参优化方法总结

目录 1. 什么是超参数 2. 超参数类型 3. 主流超参优化方法 &#xff08;1&#xff09;手动调参 缺点: python代码&#xff1a;&#xff08;例子&#xff09; 手动调参 参数的重要性顺序 超参具体如何影响模型性能 超参合适的范围 &#xff08;2&#xff09;网格搜索 …

Web3中文|马斯克也疯狂?网红AI “ChatGPT”有多火?

一个名为“ChatGPT”的网红AI竟写出了毁灭人类的计划书。 计划书的步骤详细到入侵各国计算机系统、控制武器、破坏通讯、交通系统等等。和电影里的情节一模一样&#xff0c;甚至ChatGPT还给出了相应的Python代码。 诱导ChatGPT写下该计划的是一位名为扎克德纳姆&#xff08;Z…

使用 Echarts 插件完成中国旅游地图

目录前言&#xff1a;什么是 Echarts 插件具体实现思路中国旅游地图成品展示步骤&#xff1a;完成中国旅游地图代码总结&#xff1a;前言&#xff1a; 大家都知道&#xff0c;一般情况下&#xff0c;想要使用前端设置一个 中国旅游地图 需要使用 canvas 画布进行编写&#xff…

尿苷二磷酸修饰阿拉伯糖,阿拉伯糖偶联核苷酸,UDP-B-L-阿拉伯糖二钠盐,15839-78-8

产品名称&#xff1a;尿苷二磷酸修饰阿拉伯糖&#xff0c;阿拉伯糖偶联核苷酸 英文名称&#xff1a;UDP-b-L-arabinopyranose disodium salt&#xff0c;UDP-L-Arabinose CAS号&#xff1a;15839-78-8 分子式&#xff1a;C14H22N2O16P2 分子量&#xff1a;536.27600 产地&am…

一种基于交叉选择的柯西反向鲸鱼优化算法QOWOA附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

研究 | CT图像迭代重建算法研究进展

上次讲到我实现了一下代数迭代重建&#xff08;ART&#xff09;&#xff0c;到周六开会的时候才大概了解了我的研究方向应该是统计迭代重建&#xff0c;一下子就把我给搞懵了。按照书上的说法&#xff0c;统计迭代法是在发射型CT&#xff08;SPECT和PET&#xff09;中应用广泛&…

WMS系统4.0,仓库管理的20年历史变局你知道吗?

20年之前&#xff0c;中国的仓储物流技术还处于起步阶段&#xff0c;很多时候都是从国外企业的经验中摸索出来的&#xff0c;而高端的技术&#xff0c;依然需要国外企业来完成。 20年过去了&#xff0c;中国庞大的应用场景、庞大的产业、庞大的物料、庞大的商业活动推动着中国的…