news 2026/7/13 13:14:28

leetcode 165. 比较版本号-java实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 165. 比较版本号-java实现

题目所属分类

模拟就可以了

原题链接

给你两个版本号 version1 和 version2 ,请你比较它们。

版本号由一个或多个修订号组成,各修订号由一个 ‘.’ 连接。每个修订号由 多位数字 组成,可能包含 前导零 。每个版本号至少包含一个字符。修订号从左到右编号,下标从 0 开始,最左边的修订号下标为 0 ,下一个修订号下标为 1 ,以此类推。例如,2.5.33 和 0.1 都是有效的版本号。

比较版本号时,请按从左到右的顺序依次比较它们的修订号。比较修订号时,只需比较 忽略任何前导零后的整数值 。也就是说,修订号 1 和修订号 001 相等 。如果版本号没有指定某个下标处的修订号,则该修订号视为 0 。例如,版本 1.0 小于版本 1.1 ,因为它们下标为 0 的修订号相同,而下标为 1 的修订号分别为 0 和 1 ,0 < 1 。

返回规则如下:

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

代码案例:输入:version1 = “1.01”, version2 = “1.001”
输出:0
解释:忽略前导零,“01” 和 “001” 都表示相同的整数 “1”
示例 2:
输入:version1 = “1.0”, version2 = “1.0.0”
输出:0
解释:version1 没有指定下标为 2 的修订号,即视为 “0”
示例 3:
输入:version1 = “0.1”, version2 = “1.1”
输出:-1
解释:version1 中下标为 0 的修订号是 “0”,version2 中下标为 0 的修订号是 “1” 。0 < 1,所以 version1 < version2

题解

比较s1和s2,枚举相同等级的版本号,假设枚举到某一个相同等级,i是当前s1字符串的当前等级的开头,x - 1是结尾;j是当前s2字符串的当前等级的开头,y - 1是结尾,因此s1的[i,x - 1]和s2的[j, y - 1] 是两个字符串等级相同的版本号,转换为字符串比较即可
至于x = i y ==j 这种情况就是不存在的 就是那时候s1是null 不存在的情况默认为0了

classSolution{publicintcompareVersion(Strings1,Strings2){inti=0,j=0;while(i<s1.length()||j<s2.length()){intx=i,y=j;while(x<s1.length()&&s1.charAt(x)!='.')x++;while(y<s2.length()&&s2.charAt(y)!='.')y++;inta=x==i?0:Integer.parseInt(s1.substring(i,x));intb=y==j?0:Integer.parseInt(s2.substring(j,y));if(a>b)return1;if(a<b)return-1;i=x+1;j=y+1;}return0;}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/13 13:13:07

Keil MDK v5.37+ 配置 ARM Compiler 5:3步解决 CubeMX 工程编译报错

Keil MDK v5.37 配置 ARM Compiler 5&#xff1a;3步解决 CubeMX 工程编译报错如果你最近升级了Keil MDK到v5.37或更高版本&#xff0c;可能会遇到一个令人头疼的问题&#xff1a;当你打开一个由STM32 CubeMX生成的工程并尝试编译时&#xff0c;Keil会报错提示"Target use…

作者头像 李华
网站建设 2026/7/13 13:13:03

网规第三版:第10章 网络规划与设计论文(含历年真题)(完结)

第10章 网络规划与设计论文 一、知识框架 10.1、指导思想和写作范围要求 10.2、论文考试难的原因及其对策 10.3、论文的格式与写作技巧 10.4、论文试题与评分案例 章节详细增减内容 第 10 章 网络规划与设计论文写作 新增:系统的论文写作指导思想与结构框架 新增:历年…

作者头像 李华
网站建设 2026/7/13 13:12:56

Happy Island Designer:免费在线岛屿设计器的完整指南与使用技巧

Happy Island Designer&#xff1a;免费在线岛屿设计器的完整指南与使用技巧 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)"&#xff0c;是一个在线工具&#xff0c;它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Animal…

作者头像 李华
网站建设 2026/7/13 13:12:52

【Windows用户管理】家庭版“本地用户和组”缺失的终极应对指南

1. Windows家庭版为何缺失"本地用户和组"功能每次帮朋友处理电脑问题&#xff0c;发现他们用Windows家庭版时总会遇到一个经典难题&#xff1a;想通过"计算机管理"创建新用户或调整权限&#xff0c;却死活找不到"本地用户和组"这个选项。这其实不…

作者头像 李华
网站建设 2026/7/13 13:12:19

进阶指令一

权限指令类 ls -l 显示的内容如下drwxr-xr-x 4 x-shell x-shell 4096 3月 13 11:25 图片| 10位 |0 - 9位的说明 第0 位确定文件类型 Linux文件类型说明 文件类型 说明 b 块设备&#xff0c;是一些提供系统存取数据的接口设备&#xff0c;例如硬盘。 c 字符设备&…

作者头像 李华