资讯专栏INFORMATION COLUMN

[LeetCode] Compare Version Numbers

Alex / 2158人阅读

Problem

Compare two version numbers version1 and version2.
If version1 > version2 return 1; if version1 < version2 return -1;otherwise return 0.

You may assume that the version strings are non-empty and contain only digits and the . character.
The . character does not represent a decimal point and is used to separate number sequences.
For instance, 2.5 is not "two and a half" or "half way to version three", it is the fifth second-level revision of the second first-level revision.

Example

Example 1:

Input: version1 = "0.1", version2 = "1.1"
Output: -1

Example 2:

Input: version1 = "1.0.1", version2 = "1"
Output: 1

Example 3:

Input: version1 = "7.5.2.4", version2 = "7.5.3"
Output: -1

Note

https://stackoverflow.com/que...
Basically if you want to split a dot ".", the regex "." means "any character", so you need to escape the dot with two backsplashes.

Solution
class Solution {
    public int compareVersion(String version1, String version2) {
        String[] v1 = version1.split(".");
        String[] v2 = version2.split(".");
        int len = Math.max(v1.length, v2.length);
        for (int i = 0; i < len; i++) {
            Integer i1 = i < v1.length ? Integer.parseInt(v1[i]) : 0;
            Integer i2 = i < v2.length ? Integer.parseInt(v2[i]) : 0;
            int compare = i1.compareTo(i2);
            if (compare != 0) return compare;
        }
        return 0;
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69284.html

相关文章

  • [Leetcode] Compare Version Numbers 比较版本号

    摘要:注意因为方法输入的是一个正则表达式所以不能直接用,而是要用,而的要转义,所有要用代码按照进行分割比对相应的子串如果某个版本号更长,判断其多余部分是否是,如果不是,则较长的较大,否则是一样的。 Compare Version Numbers Compare two version numbers version1 and version2. If version1 > version2...

    FrozenMap 评论0 收藏0
  • [LeetCode] Compare Version Numbers

    摘要:首先找整数部分的坐标段,和都指向初值,令和一直向后遍历到小数点为止。然后用将的整数段转化为数值,进行比较若结果为大于或小于关系,直接返回结果若结果为相等,进行小数部分的比较。 Problem Compare two version numbers version1 and version2.If version1 > version2 return 1, if version1 < v...

    jzman 评论0 收藏0
  • [LeetCode] 165. Compare Version Numbers

    Problem Compare two version numbers version1 and version2.If version1 > version2 return 1; if version1 < version2 return -1;otherwise return 0. You may assume that the version strings are non-empty an...

    赵春朋 评论0 收藏0
  • leetcode165. Compare Version Numbers

    摘要:题目要求也就是说,比较版本号。思路一利用通过方法将版本通过分隔开,然后将每一段版本从转化为进行比较思路二自己实现转化为自己实现将转化为,可以通过循环的方式。这是一个基本的算法。 题目要求 Compare two version numbers version1 and version2. If version1 > version2 return 1, if version1 < ve...

    Mike617 评论0 收藏0
  • [LintCode/LeetCode] Find Median From / Data Stream

    摘要:建立两个堆,一个堆就是本身,也就是一个最小堆另一个要写一个,使之成为一个最大堆。我们把遍历过的数组元素对半分到两个堆里,更大的数放在最小堆,较小的数放在最大堆。同时,确保最大堆的比最小堆大,才能从最大堆的顶端返回。 Problem Numbers keep coming, return the median of numbers at every time a new number a...

    zxhaaa 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<