当前位置: 首页 > news >正文

Leetcode 165. 比较版本号(Medium)

给你两个 版本号字符串 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" 处理。

提示:

  • 1 <= version1.length, version2.length <= 500
  • version1 和 version2 仅包含数字和 '.'
  • version1 和 version2 都是 有效版本号
  • version1 和 version2 的所有修订号都可以存储在 32 位整数 中

思路:用.分割,然后转成数字,空位用0替代,按位比较即可

class Solution {public int compareVersion(String version1, String version2) {String[] split1 = version1.split("\\.");String[] split2 = version2.split("\\.");int length = Math.max(split1.length, split2.length);for (int i = 0; i < length; i++) {// 直接转成数字int num1;int num2;if (i+1 <= split1.length) {num1 = Integer.parseInt(split1[i]);} else {num1 = 0;}if (i+1 <= split2.length) {num2 = Integer.parseInt(split2[i]);} else {num2 = 0;}if (num1 > num2) {return 1;} else if (num1 < num2) {return -1;}}return 0;}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【C++】——多态详解
  • 新电脑工作流搭建记录-前端篇
  • Nginx从入门到入土(三): 静态资源管理与代理服务
  • 腾讯云2024年数字生态大会开发者嘉年华(数据库动手实验)TDSQL-C初体验
  • npm 安装 与 切换 淘宝镜像
  • 使用 SpringBoot 基础web开发的支持
  • RT-DETR改进策略:BackBone改进|Next-ViT主干赋能下的革命性改进
  • 解决最短路径问题
  • HarmonyOS axios 拦截器处理token 及异常
  • vue websocket 使用
  • 【Ubuntu】虚拟机安装USB摄像头ROS驱动 usb_cam(最新方法)
  • 机器学习--神经网络
  • 一文了解高速工业相机
  • 【Linux】—— muduo网络库的安装配置与使用
  • 【ansible】role流程实验
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • CSS 提示工具(Tooltip)
  • E-HPC支持多队列管理和自动伸缩
  • export和import的用法总结
  • Js基础——数据类型之Null和Undefined
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • yii2权限控制rbac之rule详细讲解
  • 闭包--闭包作用之保存(一)
  • 计算机在识别图像时“看到”了什么?
  • 开发基于以太坊智能合约的DApp
  • 使用putty远程连接linux
  • 微服务框架lagom
  • 我的zsh配置, 2019最新方案
  • 新版博客前端前瞻
  • 因为阿里,他们成了“杭漂”
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • const的用法,特别是用在函数前面与后面的区别
  • Java数据解析之JSON
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ###C语言程序设计-----C语言学习(3)#
  • #if和#ifdef区别
  • $ git push -u origin master 推送到远程库出错
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (python)数据结构---字典
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)平衡树
  • .cfg\.dat\.mak(持续补充)
  • .java 9 找不到符号_java找不到符号
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .net对接阿里云CSB服务
  • .net快速开发框架源码分享
  • .NET中统一的存储过程调用方法(收藏)
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • ::
  • @vue/cli脚手架
  • [ C++ ] 继承
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [1204 寻找子串位置] 解题报告
  • [④ADRV902x]: Digital Filter Configuration(发射端)