• 165.比较版本号


    2020-04-17
    比较版本号

    比较两个版本号 version1 和 version2。

    如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。

    你可以假设版本字符串非空,并且只包含数字和 . 字符。

     . 字符不代表小数点,而是用于分隔数字序列。

    例如,2.5 不是“两个半”,也不是“差一半到三”,而是第二版中的第五个小版本。

    你可以假设版本号的每一级的默认修订版号为 0。例如,版本号 3.4 的第一级(大版本)和第二级(小版本)修订号分别为 3 和 4。

    其第三级和第四级修订号均为 0。

    题解:
    字符串分割
    /**
     * @param {string} version1
     * @param {string} version2
     * @return {number}
     */
    var compareVersion = function (version1, version2) {
      version1 = version1.split('.'); // 通过.分割成数组
      version2 = version2.split('.');
      let handler = (v1, v2) => { // 判断数组的每一项的大小
        if (v1 > v2) return 1;
        else if (v1 < v2) return -1;
      }
      const len = Math.max(version1.length, version2.length); // 取较长的长度作为循环长度
      let res = 0; // 结果
      for (let i = 0; i < len; i++) {
        let v1 = i < version1.length ? version1[i] : 0; // 若i<数组长度则取值 否则补0
        let v2 = i < version2.length ? version2[i] : 0;
        res = handler(parseInt(v1), parseInt(v2)); // 去掉v1 v2前面的0 
        if(res !== undefined) return res; // 如果有返回值则说明比较大小有结果 如果没有返回值则说明相等
      }
      return 0; // 如果一直相等 res就一直是undefined 所以返回0
    };
  • 相关阅读:
    实验八 进程间通信
    实验七 信号
    实验六 进程基础
    实验五 shell脚本编程
    实验四 Linux系统C语言开发环境学习
    实验三 linux系统用户管理及VIM配置
    实验二 Linux系统简单文件操作命令
    实验一 linux系统与应用准备
    myatbis的一个好的封装
    php上传微信素材
  • 原文地址:https://www.cnblogs.com/lanpang9661/p/12717576.html
Copyright © 2020-2023  润新知