LeetCode 165. Compare Version Numbers

来源:互联网 发布:一亿玉碎 知乎 编辑:程序博客网 时间:2024/06/06 09:19

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