首页 > 其他 > 详细

LeetCode 165. 比较版本号

时间:2020-09-20 20:32:43      阅读:52      评论:0      收藏:0      [点我收藏+]

题目链接

165. 比较版本号

题目思想

这个题没啥好说的,就是直接模拟即可,但是要注意Integer包装类的数值大小比较。另外就是字符串分割的时候,"."需要转义处理一下

代码实现

class Solution {
    //Integer不能直接比较大小,要么拆箱变成int,要么用equals来比较。
    //拆箱可以隐式拆箱,也可以手动调用intValue()来拆箱。
    public int compareVersion(String version1, String version2) {
        String[] ver1 = version1.split("\\.");
        String[] ver2 = version2.split("\\.");
        int i = 0;
        int j = 0;
        while(i < ver1.length && j < ver2.length){
            int a = Integer.parseInt(ver1[i]);
            int b = Integer.parseInt(ver2[j]);
            if(a == b){
                i++;
                j++;
            }else if(a < b){
                return -1;
            }else if(a > b){
                return 1;
            }
        }
        if(i == ver1.length && j == ver2.length){
            return 0;
        }else if(i == ver1.length){
            while(j < ver2.length){
                int a = Integer.parseInt(ver2[j]);
                if(a > 0){
                    return -1;
                }
                j++;
            }
        }else if(j == ver2.length){
            while(i < ver1.length){
                int a = Integer.parseInt(ver1[i]);
                if(a > 0){
                    return 1;
                }
                i++;
            }
        }
        return 0;
    }
}

LeetCode 165. 比较版本号

原文:https://www.cnblogs.com/ZJPaang/p/13700800.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!