1、版本号比较

题目:力扣

思路:将版本号转成数组,两两对应比较

代码:

var compareVersion = function(version1, version2) {
    const arr1 = version1.split('.').map(e => e * 1)
    const arr2 = version2.split('.').map(e => e * 1)
    const length = Math.max(arr1.length, arr2.length)
    for (let i = 0; i < length; i ++) {
        if ((arr1[i] || 0) > (arr2[i] || 0)) return 1
        if ((arr1[i] || 0) < (arr2[i] || 0)) return -1
    }
    return 0
};

2、版本号排序

字节面试时就遇到了这道题,给定版本号['0.1.1', '2.3.3', '0.3002.1', '4.2', '4.3.5', '4.3.4.5'],输出版本号从小到大排序的结果。

思路:数组sort方法两参数代表任意两项,排序版本号问题就转变成了比较两版本大小的问题

代码:

    const versionList = ['0.1.1', '2.3.3', '0.3002.1', '4.2', '4.3.5', '4.3.4.5']
    function sortVersion (list) {
        return list.sort((version1, version2) => {
            const arr1 = version1.split('.').map(e => e * 1)
            const arr2 = version2.split('.').map(e => e * 1)
            const length = Math.max(arr1.length, arr2.length)
            for (let i = 0; i < length; i ++) {
                if ((arr1[i] || 0) > (arr2[i] || 0)) return 1
                if ((arr1[i] || 0) < (arr2[i] || 0)) return -1
            }
            return 0
        })
    }

    console.log(sortVersion(versionList));

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐