1. 首页
  2. LeetCode 刷题网

LeetCode 165. 比较版本号

题目描述

难度:Middle

相关话题:字符串

比较两个版本号 version1version2
如果 version1>version2 返回 1 ,如果 version1<version2 返回 -1 , 除此之外返回 0

你可以假设版本字符串非空,并且只包含数字和 . 字符。

. 字符不代表小数点,而是用于分隔数字序列。

例如, 2.5 不是“两个半”,也不是“差一半到三”,而是第二版中的第五个小版本。

你可以假设版本号的每一级的默认修订版号为 0 。例如,版本号 3.4 的第一级(大版本)和第二级(小版本)修订号分别为 34 。其第三级和第四级修订号均为 0

示例1:

输入: version1 = "0.1", version2 = "1.1"
输出: -1

示例 2:

输入:version1 = "1.0.1", version2 = "1"
输出: 1

示例 3:

输入: version1 = "7.5.2.4", version2 = "7.5.3"
输出: -1

示例4:

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

示例 5:

输入:version1 = "1.0", version2 = "1.0.0"
输出:0
解释:version1没有第三级修订号,这意味着它的第三级修订号默认为 “0”。

提示:

  1. 版本字符串由以点( . )分隔的数字字符串组成。这个数字字符串可能 有前导零。

  2. 版本字符串不以点开始或结束,并且其中不会有两个连续的点。

/**
 * @ Javascript中文网 - 前端进阶资源教程 https://www.javascriptc.com/
 * @param {string} version1
 * @param {string} version2
 * @return {number}
 */
var compareVersion = function(version1, version2) {
  let arr1=version1.split('.'),
      arr2=version2.split('.')

  if(arr1.length<arr2.length){
    let delt=arr2.length-arr1.length
    while(delt-->0) arr1.push('0')
  }else{
    let delt=arr1.length-arr2.length
    while(delt-->0) arr2.push('0')
  }
  for(let i=0;i<arr1.length;i++){
    let n1=+arr1[i],n2=+arr2[i]
    if(n1>n2)return 1
    else if(n1<n2)return -1
  }
  return 0
};

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「IT平头哥联盟」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

本文著作权归作者所有,如若转载,请注明出处

转载请注明:文章转载自「 Js中文网 · 前端进阶资源教程 」https://www.javascriptc.com

标题:LeetCode 165. 比较版本号

链接:https://www.javascriptc.com/4524.html

« LeetCode 166. 分数到小数
LeetCode 164. 最大间距»
Flutter 中文教程资源

相关推荐

QR code