165. Compare Version Numbers

Total Accepted: 45172
Total Submissions: 268283
Difficulty: Easy

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

Java:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Solution {
    public int compareVersion(String version1, String version2) {
        int len1=version1.length(),len2=version2.length(),i1=-1,i2=-1;
        while(i1<len1||i2<len2){
            ++i1;++i2;
            int v1=0,v2=0;
            while(i1<len1&&version1.charAt(i1)!='.')
                v1=v1*10+version1.charAt(i1++)-'0';
            while(i2<len2&&version2.charAt(i2)!='.')
                v2=v2*10+version2.charAt(i2++)-'0';
            if(v1!=v2)
                return v1>v2?1:-1;
        }
        return 0;
    }
}

打个小广告

欢迎加入我的小专栏「基你太美」一起学习。