zoukankan      html  css  js  c++  java
  • 165. Compare Version Numbers

    一、题目

      1、审题

      

      2、分析

        给出两个非空的且只包含数字、点号的版本号,比较版本号的大小。

    二、解答

      1、思路:

        方法一、

         ①、以 split 切割字符串成数组;按顺序对两个数组中字符串进行比较;

         ②、,短版本号的后边默认为 0,继续比较;

        public int compareVersion(String version1, String version2) {
            String[] arr1 = version1.split("\.");    // 以 “.” 切割字符串
            String[] arr2 = version2.split("\.");
            
            int length = Math.max(arr1.length, arr2.length);
            for (int i = 0; i < length; i++) {
                Integer v1 = i < arr1.length ? Integer.parseInt(arr1[i]) : 0;
                Integer v2 = i < arr2.length ? Integer.parseInt(arr2[i]) : 0;
                int compare = v1.compareTo(v2);
                if(compare != 0)
                    return compare;
            }
            return 0;
        }

      方法二、

        ①、将每一个 “.” 分割成的数字字符串拼接成整数,按顺序对两个字符串进行比较;

        ②、短版本号的后边默认为 0;

        public int compareVersion(String version1, String version2) {
            Integer tmp1 = 0, tmp2 = 0;
            int len1 = version1.length(), len2 = version2.length();
            int i = 0, j = 0;
            
            while(i < len1 || j < len2) {
                tmp1 = 0;
                tmp2 = 0;
                while(i < len1 && version1.charAt(i) != '.') 
                    tmp1 = tmp1 * 10 + (version1.charAt(i++) - '0');
                
                while(j < len2 && version2.charAt(j) != '.') 
                    tmp2 = tmp2 * 10 + (version2.charAt(j++) - '0');
                
                int compare = tmp1.compareTo(tmp2);
                if(compare != 0)
                    return compare;
                
                i++;    // 跳过 "."
                j++;
            }
            return 0;
        }
  • 相关阅读:
    Unix Domain Socket(基于 Linux-2.4.0已更新)
    Eclipse常用设置及部分常用快捷键个人总结(MyEclipse通用)
    使用Docker安装ElasticSearch 以及我遇到的问题
    使用Docker安装MySQL
    es 索引自动删除
    k8s部署zk集群
    k8s-基于Canal来定义网络策略
    Markdown学习
    python ---- Linux压缩某个目录但要跳过指定文件
    WEB前端 ---- 学习第二天(表格、表单、css等)
  • 原文地址:https://www.cnblogs.com/skillking/p/9790229.html
Copyright © 2011-2022 走看看