165. Compare Version Numbers

Leetcode link

题目简介

题目要求我们对比两个只由数字跟 . 构成的版本号

要求从左到右,并忽略小版本号前面的 0

如果 version1 < version2 返回 -1

如果 version1 > version2 返回 1

如果 version1 === version2 返回 0

解题思路

我们只需要用 split 将 version 拆分成数组,然后把数组的元素从字符串转换成 number 之后遍历比较就好

Javascript

/**
 * @param {string} version1
 * @param {string} version2
 * @return {number}
 */
var compareVersion = function(version1, version2) {
    const ver1Arr = version1.split('.').map(item => Number(item))
    const ver2Arr = version2.split('.').map(item => Number(item))
    const ver1Len = ver1Arr.length
    const ver2Len = ver2Arr.length

    for(let i=0;i<Math.max(ver1Len, ver2Len);i++) {
        const ver1Val = i >= ver1Len ? 0 : ver1Arr[i]
        const ver2Val = i >= ver2Len ? 0 : ver2Arr[i]
        if(ver1Val > ver2Val) {
            return 1
        }
        if(ver1Val < ver2Val) {
            return -1
        }
    }

    return 0
};

results matching ""

    No results matching ""