LeetCode 165. Compare Version Numbers

LeetCode 165. Compare Version Numbers

问题来源LeetCode 165. Compare Version Numbers

问题描述

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.

Here is an example of version numbers ordering:

0.1 < 1.1 < 1.2 < 13.37

问题分析

这道题就是比较版本号。需要考虑的问题比较多。
比如1.11.1.1版本,还有1.11.1.0版本这样的问题。我采用的从前到后递归进行比较。

Java代码

public int compareVersion(String version1, String version2) {
    String [] strings1 = version1.split("\\.");
    String [] strings2 = version2.split("\\.");
    if(strings1.length>strings2.length){
        return helpJudge(strings1,strings2);
    }else {
        return -helpJudge(strings2,strings1);
    }

}
int helpJudge(String[] longStr,String[] shortStr){
    int i =0;
    for (; i < shortStr.length; i++) {
        if(Integer.valueOf(longStr[i])>Integer.valueOf(shortStr[i])){
            return 1;
        }else if(Integer.valueOf(longStr[i])<Integer.valueOf(shortStr[i])){
            return -1;
        }
    }
    for(;i<longStr.length;i++){
        if(Integer.valueOf(longStr[i])>0){
            return 1;
        }
    }
    return 0;
}

LeetCode学习笔记持续更新

GitHub地址 https://github.com/yanqinghe/leetcode

CSDN博客地址 http://blog.csdn.net/yanqinghe123/article/category/7176678

点赞