leetcode_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.用split将' . '分隔的数字提取出并放到一个数组中

2.然后分别比较数组中的各位数字即可。

代码:

public int compareVersion(String version1, String version2) {
        String Arr1[]=version1.split("\\.");
        String Arr2[]=version2.split("\\.");
        int len1=Arr1.length;
        int len2=Arr2.length;
        int min=len1<len2?len1:len2;
        int num1=0,num2=0;
        for(int i=0;i<min;i++)
        {
            num1=Integer.valueOf(Arr1[i]);
            num2=Integer.valueOf(Arr2[i]);
            if(num1!=num2)
            {
                if(num1>num2)
                    return 1;
                else
                    return -1;
            }
        }
        if(len1>len2)
        {
            for(int i=min;i<len1;i++)
            {
                num1=Integer.valueOf(Arr1[i]);
                if(num1!=0)
                    return 1;
            }
        }
        else if(len1<len2)
        {
            for(int i=min;i<len2;i++)
            {
                num1=Integer.valueOf(Arr2[i]);
                if(num1!=0)
                    return -1;
            }
        }
        return 0;
    }


你可能感兴趣的:(String,version,split,Numbers)