zoukankan      html  css  js  c++  java
  • 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
    };
  • 相关阅读:
    POJ 1631 Bridging signals
    POJ 1451 T9
    企业应用架构模式阅读笔记3
    论面向服务架构设计及其应用
    软件质量属性-可测试性
    企业应用架构模式阅读笔记2
    企业应用架构模式阅读笔记1
    QTP安装与破解
    Android studio打不开,双击没有反应,已解决
    hibernate框架的基本原理及实例
  • 原文地址:https://www.cnblogs.com/lanpang9661/p/12717576.html
Copyright © 2011-2022 走看看