【算法题】比较两个版本号的大小(js)



js 复制代码
const lines = ["5.2", "5.1a"];
const lines1 = ["5.6.1", "5.6.2a"];
const lines2 = ["5.6.8.a", "5.6.8.0a"];
const lines3 = ["5.06.08.a", "5.6.8.0a"];
const lines4 = ["5", "5.0.0.0"];
function solution(lines) {
  const [verson1, version2] = lines;
  if (!isValid(verson1) || !isValid(version2)) return 0;
  const str1 = verson1.replace(/[\.0]/g, "");
  const str2 = version2.replace(/[\.0]/g, "");
  return parseInt(str1) !== parseInt(str2)
    ? parseInt(str1) > parseInt(str2)
      ? 1
      : -1
    : 0;
  console.log(str1, str2);
  function isValid(ver) {
    if (/[^0-9a-zA-Z.]/.test(ver)) return false;
    const arr = ver.split(".");
    if (arr.length < 1) return false;
    return true;
  }
}

console.log(solution(lines));
/* 
5.2
5.1a
=> 1

5.6.1
5.6.2a
=>
-1

5.6.8.a
5.6.8.0a
=>
0

const lines3 = ["5.06.08.a", "5.6.8.0a"];  预计 0
const lines4 = ["5", "5.0.0.0"];    预计 0
 */
相关推荐
pusheng202510 分钟前
地下车库一氧化碳监测的技术挑战与解决方案
前端·安全
ghie909011 分钟前
使用直接节点积分法进行无网格法2D悬臂梁计算
算法
成为大佬先秃头13 分钟前
渐进式JavaScript框架:Vue — API
开发语言·javascript·vue.js
Helibo4415 分钟前
2025年12月gesp3级题解
数据结构·c++·算法
p&f°18 分钟前
垃圾回收两种算法
java·jvm·算法
先做个垃圾出来………24 分钟前
搜索树完整
开发语言·javascript·ecmascript
点云SLAM26 分钟前
点云配准算法之- GICP算法点云配准概率模型推导和最大似然求解(MLE)
算法·机器人·slam·点云配准·最大似然估计·点云数据处理·gicp算法
曹轲恒28 分钟前
双栈实现队列/双队列实现栈
算法
ResponseState20033 分钟前
安卓原生写uniapp插件手把手教学调试、打包、发布。
前端·uni-app
AI科技星34 分钟前
张祥前统一场论电荷定义方程分析报告
开发语言·经验分享·线性代数·算法·数学建模