165.比较版本号
Posted lanpang9661
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了165.比较版本号相关的知识,希望对你有一定的参考价值。
2020-04-17
比较版本号
比较两个版本号 version1 和 version2。
如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。
你可以假设版本字符串非空,并且只包含数字和 . 字符。
. 字符不代表小数点,而是用于分隔数字序列。
例如,2.5 不是“两个半”,也不是“差一半到三”,而是第二版中的第五个小版本。
你可以假设版本号的每一级的默认修订版号为 0。例如,版本号 3.4 的第一级(大版本)和第二级(小版本)修订号分别为 3 和 4。
其第三级和第四级修订号均为 0。
题解:
字符串分割
/** * @param {string} version1 * @param {string} version2 * @return {number} */ var compareVersion = function (version1, version2) { version1 = version1.split(‘.‘); // 通过.分割成数组 version2 = version2.split(‘.‘); let handler = (v1, v2) => { // 判断数组的每一项的大小 if (v1 > v2) return 1; else if (v1 < v2) return -1; } const len = Math.max(version1.length, version2.length); // 取较长的长度作为循环长度 let res = 0; // 结果 for (let i = 0; i < len; i++) { let v1 = i < version1.length ? version1[i] : 0; // 若i<数组长度则取值 否则补0 let v2 = i < version2.length ? version2[i] : 0; res = handler(parseInt(v1), parseInt(v2)); // 去掉v1 v2前面的0 if(res !== undefined) return res; // 如果有返回值则说明比较大小有结果 如果没有返回值则说明相等 } return 0; // 如果一直相等 res就一直是undefined 所以返回0 };
以上是关于165.比较版本号的主要内容,如果未能解决你的问题,请参考以下文章