赞
踩
题目:
牛客项目发布项目版本时会有版本号,比如1.02.11,2.14.4等等
现在给你2个版本号version1和version2,请你比较他们的大小
版本号是由修订号组成,修订号与修订号之间由一个"."连接。1个修订号可能有多位数字组成,修订号可能包含前导0,且是合法的。例如,1.02.11,0.1,0.2都是合法的版本号
每个版本号至少包含1个修订号。
修订号从左到右编号,下标从0开始,最左边的修订号下标为0,下一个修订号下标为1,以此类推。
比较规则:
- /**
- * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
- *
- * 比较版本号
- * @param version1 string字符串
- * @param version2 string字符串
- * @return int整型
- */
- function compare( version1 , version2 ) {
- //先对字符串进行分隔
- const v1 = version1.split(".");
- const v2 = version2.split(".");
- const len = Math.max(v1.length,v2.length);
- //依次比较
- for(let i=0; i<len; i++){
- //将字符串转化为数字
- const n1 = Number(v1[i] || 0);
- const n2 = Number(v2[i] || 0);
- if(n1 > n2) return 1;
- if(n1 < n2) return -1;
- }
- return 0;
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
给定一个版本号数组['4.8', '1.7.1', '4.1.9', '5'] ,按照规则进行升序排序。
排序结果:["1.7.1", "4.1.9", "4.8", "5"]
注意:对于首位相同的版本号,进行第二位以及其余位的判断。
- function arrSort(arr) {
- arr.sort((version1, version2) => {
- //先对字符串进行分隔
- const v1 = version1.split(".");
- const v2 = version2.split(".");
- const len = Math.max(v1.length, v2.length);
- //依次比较
- for (let i = 0; i < len; i++) {
- //将字符串转化为数字
- const n1 = Number(v1[i] || 0);
- const n2 = Number(v2[i] || 0);
- if (n1 > n2) return 1;
- if (n1 < n2) return -1;
- }
- return 0;
- })
- }
-
- const arr = ['4.8', '1.7.1', '4.1.9', '5'];
- arrSort(arr);
- console.log(arr); //["1.7.1", "4.1.9", "4.8", "5"]
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。