算法:版本号比较、排序
·
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));
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)