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 北京

相关推荐

05-03 12:45
西南大学 Java
nsnzkv:你这项目写的内容太多了,说实话都是在给自己挖坑,就算简历过了,后面面试也难受
点赞 评论 收藏
分享
程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

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