-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDay 035-Compare Version Numbers
62 lines (50 loc) · 1.54 KB
/
Day 035-Compare Version Numbers
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// ( --- https://leetcode.com/problems/compare-version-numbers/ --- )
// 165. Compare Version Numbers
class Solution {
public int compareVersion(String v1, String v2) {
int s=0,e=0;
int i=0,j=0;
while(e<v1.length() || j<v2.length())
{
int val1=0,val2=0;
if(e<v1.length()){
while(e<v1.length() && v1.charAt(e)!='.')e++;
if(s<e)
val1 = Integer.parseInt(v1.substring(s,e));
s=e+1;
}
if(j<v2.length()){
while(j<v2.length()&&v2.charAt(j)!='.')j++;
if(i<j)
val2 = Integer.parseInt(v2.substring(i,j));
i=j+1;
}
if(val1<val2)
return -1;
if(val1>val2)
return 1;
e++;
j++;
}
return 0;
}
}
With SLIPTING WAY
lass Solution {
public int compareVersion(String version1, String version2) {
String []arr1= version1.split("\\.");
String []arr2= version2.split("\\.");
int max=Math.max(arr1.length, arr2.length);
for(int i=0;i<max;i++){
int num1= i >= arr1.length ? 0 : Integer.parseInt(arr1[i]);
int num2= i >= arr2.length ? 0 : Integer.parseInt(arr2[i]);
if(num1>num2){
return 1;
}
if(num1<num2){
return -1;
}
}
return 0;
}
}