【算法题】比较两个版本号的大小(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
 */
相关推荐
会编程的土豆10 分钟前
01背包与完全背包详解
开发语言·数据结构·c++·算法
IT_陈寒12 分钟前
Python多进程共享变量那个坑,我差点没爬出来
前端·人工智能·后端
ayqy贾杰29 分钟前
Claude Code 重构,并行化或终结 IDE 时代
前端·javascript·面试
汀、人工智能31 分钟前
[特殊字符] 第86课:最大正方形
数据结构·算法·数据库架构·图论·bfs·最大正方形
hetao17338371 小时前
2026-04-12~14 hetao1733837 的刷题记录
c++·算法
tanis_31 小时前
MinerU JS/TS SDK 深度指南:JavaScript/TypeScript 开发者的 PDF/文档解析利器
javascript
lxh01131 小时前
正则表达式匹配
算法
SuperChe1 小时前
用AI Native的方式优化前端性能
前端·算法
陈广亮1 小时前
工具指南24-在线CSS Box Shadow生成器
前端
颜酱1 小时前
智能体与工作流:从「想做一个应用」到「能跑通一条链」
前端·javascript·人工智能