leetcode165.比较版本号,简单模拟

leetcode165.比较版本号

给你两个 版本号字符串 version1 和 version2 ,请你比较它们。版本号由被点 ‘.’ 分开的修订号组成。修订号的值 是它 转换为整数 并忽略前导零。

比较版本号时,请按 从左到右的顺序 依次比较它们的修订号。如果其中一个版本字符串的修订号较少,则将缺失的修订号视为 0。

返回规则如下:

如果 version1 < version2 返回 -1,
如果 version1 > version2 返回 1,
除此之外返回 0。

示例 1:
输入:version1 = “1.2”, version2 = “1.10”
输出:-1
解释:
version1 的第二个修订号为 “2”,version2 的第二个修订号为 “10”:2 < 10,所以 version1 < version2。

示例 2:
输入:version1 = “1.01”, version2 = “1.001”
输出:0
解释:
忽略前导零,“01” 和 “001” 都代表相同的整数 “1”。

示例 3:
输入:version1 = “1.0”, version2 = “1.0.0.0”
输出:0
解释:
version1 有更少的修订号,每个缺失的修订号按 “0” 处理。

函数首先获取两个版本号字符串的长度,并初始化两个索引 i 和 j 用于遍历这两个字符串。
使用 while 循环,只要 i 小于 version1 的长度或者 j 小于 version2 的长度,循环就会继续。
在循环内部,使用嵌套的 while 循环来提取每个版本号段的数值。例如,对于 version1,从索引 i 开始提取数字,直到遇到分隔符 ‘.’。
将提取的字符串转换为 long long 类型的整数 num1 和 num2。
每次比较完一个版本号段后,相应的索引 i 或 j 会增加,跳过分隔符 ‘.’。
使用 if-else 语句比较 num1 和 num2:
如果 num1 小于 num2,返回 -1,表示 version1 小于 version2。
如果 num1 大于 num2,返回 1,表示 version1 大于 version2。
如果两者相等,循环继续,比较下一个版本号段。
如果所有版本号段都相等,或者一个版本号已经到达末尾而另一个版本号还有剩余段,循环结束,返回 0,表示两个版本号相等。
具体代码如下:

class Solution {
public:int compare(string version1, string version2) {// write code hereint size1=version1.size();int size2=version2.size();int i=0,j=0;while(i<size1 || j<size2){long long num1=0;while(i<size1 && version1[i]!='.'){num1=num1*10+version1[i]-'0';i++;}i++;long long num2=0;while(j<size2 && version2[j]!='.'){num2=num2*10+version2[j]-'0';j++;}j++;if(num1<num2) return -1;else if(num1>num2) return 1;}return 0;}
};

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

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

相关文章

主流摄像机:海康、大华、宇视、华为等RTSP格式

主流摄像机&#xff1a;海康、大华、宇视、华为等RTSP格式 解决方案速览海康摄像机大华摄像机宇视摄像机华为摄像机 解决方案速览 品牌rtsp格式rtsp举例海康rtsp://[username]:[password][ip]:[port]/[codec]/[channel]/[subtype]/av_streamrtsp://admin:admin123192.168.1.10…

libcef.dll丢失的解决方法-多种libcef.dll亲测有效解决方法分享

libcef.dll是Chromium Embedded Framework (CEF)的核心动态链接库&#xff0c;它为开发者提供了一个将Chromium浏览器嵌入到本地桌面应用程序中的解决方案。这个库使得开发者能够利用Chromium的强大功能&#xff0c;如HTML5、CSS3、JavaScript等&#xff0c;来创建跨平台的应用…

罕见!史诗级“大堵船”

新加坡港口的停泊延误时间已延长至7天&#xff0c;积压的集装箱数量达到惊人的450000标准箱&#xff0c;远超新冠疫情暴发时期的数轮高点。业内认为&#xff0c;近期东南亚恶劣的天气情况加剧了该区域港口拥堵。 5月31日&#xff0c;上海航运交易所&#xff08;下称“航交所”…

重生奇迹MU召唤师如何学习狂暴术?

一、了解狂暴术的基本信息 狂暴术是一种非常强大的技能&#xff0c;可以让召唤师的攻击力和防御力大幅度提高&#xff0c;但同时也会增加自身的伤害。在使用狂暴术之前&#xff0c;召唤师需要仔细考虑自己的状态和对手的情况。 二、学习狂暴术的方法 1.通过任务学习 在游戏…

Docker安装与使用 --学习笔记

一、概述 Docker是什么? Docker是一种工具&#xff0c;类似于一个虚拟箱子&#xff0c;可以把软件和它运行所需要的环境打包放进这个箱子里。这样&#xff0c;无论这个箱子放到哪里&#xff0c;软件都能像在原来的地方一样运行&#xff0c;不会因为换了地方就出问题。 假设…

uniapp使用数据持久化存储

什么是持久化存储 持久化存储是指将数据存储在非易失性介质中&#xff0c;以保证数据在系统重启或断电后仍能保持不变。这种存储方式确保数据持久存储并且可靠地被读取和访问&#xff0c; 简答来说&#xff1a;就是防止丢失&#xff0c;长期存储 为什么要用持久化存储 Pini…

leetcode5 最长回文子串

给你一个字符串 s&#xff0c;找到 s 中最长的 回文 子串。 示例 1&#xff1a; 输入&#xff1a;s "babad" 输出&#xff1a;"bab" 解释&#xff1a;"aba" 同样是符合题意的答案。示例 2&#xff1a; 输入&#xff1a;s "cbbd" 输…

【Java】一文看懂Thread 线程池的 7 种创建方式、任务队列及自定义线程池(代码示例)

本文摘要&#xff1a;【Java】Thread 线程池的 7 种创建方式及自定义线程池&#xff08;代码示例版&#xff09; &#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专…

编写一款2D CAD/CAM软件(十九)点选图形

点选图元原理 设定鼠标敏感范围,比如选中鼠标点击位置5个像素内距离最近的图元;当鼠标点击时,求解点击位置在几何坐标系下坐标点与附近几何图元的距离;如果到图元距离小于设定的鼠标敏感范围,则视为图形可选中;进一步,如果多个图元满足被选中的条件,则只选中距离最近的…

彩灯控制器设计 74ls160+ne555实现

一、选题背景 数字电子技术在我们生活中的应用非常之广泛,不论是在各个方面都会涉及到它,小到家用电器的自动控制,大到神舟九号和天空一号航天器的设计,都无可避免的要运用它。并且鉴于以理论推动实践及理论实践相结合为指导思想,特此用我们所学的理论知识来实践这次课程设…

低空经济国外经验及发展重点

国外先进经验 1.精准分类管理 美国将空域划分五大类&#xff0c;主要包括A类&#xff08;高空管制空域&#xff09;、B类&#xff08;繁忙终端管制空域&#xff09;、C类&#xff08;一般终端管制空域&#xff09;、D类&#xff08;机场管制空域&#xff09;和E类&#xff08…

UVa12273/LA4958 Palindromic DNA

UVa12273/LA4958 Palindromic DNA 题目链接题意分析AC 代码 题目链接 本题是2010年icpc欧洲区域赛西南欧赛区的的E题 题意 DNA由四种核苷碱基A、G、T、C组成&#xff0c;它们形成环状排序。当今能对DNA进行修改&#xff08;但不能同时对相邻位置进行修改&#xff09;&#xff…

【云原生】Docker Compose 使用详解

目录 一、前言 二、Docker Compose 介绍 2.1 Docker Compose概述 2.2 Docker Compose特点 2.3 Docker Compose使用场景 三、Docker Compose 搭建 3.1 安装docker环境 3.2 Docker Compose安装方式一 3.2.1 下载最新版/如果不是最新可替换最新版本 3.2.2 设置权限 3.2.…

Q-Learning 简介:初学者教程(1)

一、说明 强化学习强调无模型学习算法&#xff0c;因此出现Q-Learning&#xff0c;Q-Learning算法酷似“有限状态自动机”模型&#xff0c;只是增加了奖励机制和Agent机制&#xff0c;而Agent与粒子群算法、蒙特卡洛算法是有关的。本文介绍这个算法框架。 &#xff0c; 二、QL框…

项目管理之maven svn

管理jar包之间依赖关系 编译、打包、清理、测试等一系列构建工具 一、Maven的标志 1、每一个maven工程都有一个pom.xml maven项目坐标 <groupId>com.aaa</groupId>//项目路径 <artifactId>web</artifactId>项目名称 <version>0.0.1-SNAPS…

C语言—深入理解指针(5)

1. sizeof 和 strlen 的对比 1.1 sizeof 在学习操作符的时候&#xff0c;我们学习了 sizeof&#xff0c;sizeof 是计算变量所占内存空间大小的&#xff0c;单位是字节&#xff0c;如果操作数是类型的话&#xff0c;计算的是使用类型创建的变量所占内存空间的大小。 sizeof 只…

西瓜播放器xgplayer设置自动播放踩坑

上图是官网&#xff08;西瓜视频播放器官方中文文档&#xff09;的介绍&#xff0c;相信大家都是按照官网配置去做的&#xff0c;但是并没有什么用&#xff0c;插件很好用&#xff0c;但是属性不全&#xff0c;真的很悔恨&#xff0c;找遍 api 都没有找到自动播放的属性&#x…

基于BERT+LSTM+CRF深度学习识别模型医疗知识图谱问答可视化系统

基于BERT+LSTM+CRF深度学习识别模型的医疗知识图谱问答可视化系统是一个综合性的系统,它结合了深度学习技术和知识图谱技术,为医疗领域提供了高效、准确的信息查询和问答服务。以下是该系统的详细介绍: 一、系统概述 该系统通过构建医疗领域的知识图谱,结合BERT+LSTM+CRF…

MongoDB-4.2.1 之安装和使用

安装 下载安装包 我自己电脑是 Windows7 的老古董&#xff0c;所以就下载老版本的 MongoDB。 mongodb: https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2012plus-4.2.1.zip 解压安装包到指定路径 我解压到的 C 盘 C:\mongodb-4.2.1 添加环境变量 创建数据库和…

python数据分析numpy基础之in1d检查数组元素是否在另一数组中

1 python数据分析numpy基础之in1d检查数组元素是否在另一数组中 python的numpy库的in1d(x,y)函数&#xff0c;检查数组x的元素是否在另一数组y中&#xff0c;并返回一个长度与x相等的布尔数组。 用法 numpy.in1d(ar1, ar2, assume_uniqueFalse, invertFalse, *, kindNone)描…