js 题解

比较版本号

http://www.nowcoder.com/questionTerminal/2b317e02f14247a49ffdbdba315459e7

思路

1.版本号切割成数组,并且把字符串数字转成数字类型,这里有一个特别的点就是,字符串转数字的时候 '0011' 会转成 11
2.然后计算两个切割数组的长度,如果长度不一致,填充0直到长度一致
3.然后就是比较 > < 如果等于 继续寻找知道结束 返回0

 // 核心代码
 var arr1 = version1.split('.').map(item => Number(item)),
        arr2 = version2.split('.').map(item => Number(item)),
        maxLen = Math.max(arr1.length, arr2.length);
    while(arr1.length < maxLen) arr1.push(0);
    while(arr2.length < maxLen) arr2.push(0);
    for (let i = 0; i < maxLen; i++) {
        if (arr1[i] > arr2[i]) return 1;
        if (arr1[i] < arr2[i]) return -1
    }
    return 0
全部评论
用数组不符合空间复杂度为O(1)的要求。
点赞 回复 分享
发布于 2024-01-24 15:33 北京

相关推荐

在笔试的大西瓜很矫健:校招数分不用想了,这经历和学历都不够用,大厂更别想,初筛都过不了,说点不好听的小厂数分都进不去(小厂也是假数分),要两个对口实习+3个项目(或者3+2),而且要有含金量才能补一点你的学历劣势。 建议刷实习,社招找数分,校招看运气,能入行业就行,可以运营转数分
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务