1
+ /*
2
+ Author: King, wangjingui@outlook.com
3
+ Date: Dec 15, 2014
4
+ Problem: Compare Version Numbers
5
+ Difficulty: Easy
6
+ Source: https://oj.leetcode.com/problems/compare-version-numbers/
7
+ Notes:
8
+ Compare two version numbers version1 and version1.
9
+ If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0.
10
+
11
+ You may assume that the version strings are non-empty and contain only digits and the . character.
12
+ The . character does not represent a decimal point and is used to separate number sequences.
13
+ 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.
14
+
15
+ Here is an example of version numbers ordering:
16
+
17
+ 0.1 < 1.1 < 1.2 < 13.37
18
+
19
+ Solution: ...
20
+ */
21
+
22
+ public class Solution {
23
+ public int compareVersion (String version1 ,String version2 ) {
24
+ long a =0 ,b =0 ;
25
+ int v1len =version1 .length (),v2len =version2 .length ();
26
+ int i =0 ,j =0 ;
27
+ while (i <v1len ||j <v2len ) {
28
+ a =0 ;b =0 ;
29
+ while (i <v1len &&version1 .charAt (i ) !='.' ) {
30
+ a =a *10 +version1 .charAt (i ) -'0' ;
31
+ ++i ;
32
+ }
33
+ ++i ;
34
+ while (j <v2len &&version2 .charAt (j ) !='.' ) {
35
+ b =b *10 +version2 .charAt (j ) -'0' ;
36
+ ++j ;
37
+ }
38
+ ++j ;
39
+ if (a >b )return 1 ;
40
+ if (a <b )return -1 ;
41
+ }
42
+ return 0 ;
43
+ }
44
+ }