[165] 比较版本号
split 字符串分割
details
var compareVersion = function (version1, version2) {
let v1 = version1.split('.');
let v2 = version2.split('.');
let maxLength = Math.max(v1.length, v2.length);
for (let i = 0; i < maxLength; i++) {
let num1 = i < v1.length ? parseInt(v1[i]) : 0;
let num2 = i < v2.length ? parseInt(v2[i]) : 0;
if (num1 < num2) return -1;
if (num1 > num2) return 1;
}
return 0;
};
双指针
details
/**
* @param {string} version1
* @param {string} version2
* @return {number}
*/
var compareVersion = function (version1, version2) {
let len1 = version1.length,
len2 = version2.length;
let i = 0,
j = 0;
while (i < len1 || j < len2) {
let v1 = 0;
while (version1[i] != '.' && i < len1) {
v1 = v1 * 10 + parseInt(version1[i]);
i++;
}
i++;
let v2 = 0;
while (version2[j] != '.' && j < len2) {
v2 = v2 * 10 + parseInt(version2[j]);
j++;
}
j++;
if (v1 < v2) return -1;
if (v1 > v2) return 1;
}
return 0;
};