Compare Version Numbers LeetCode solution in C++

1
class Solution {
2
public:
3
int compareVersion(string v1, string v2) {
4
int ans = 0;
5
int n1 = v1.size(), n2 = v2.size();
6

7
for (int i = 0, j = 0; i < n1 || j < n2; ++i, ++j) {
8
string s1 = "", s2 = "";
9

10
while (i < n1 && v1[i] != '.') {
11
if (s1.size() == 0 && v1[i] == '0') {
12
++i;
13
continue;
14
}
15

16
s1 += v1[i++];
17
}
18

19
while (j < n2 && v2[j] != '.') {
20
if (s2.size() == 0 && v2[j] == '0') {
21
++j;
22
continue;
23
}
24

25
s2 += v2[j++];
26
}
27

28
if (s1.size() < s2.size())
29
return -1;
30
else if (s2.size() < s1.size())
31
return 1;
32

33
ans = s1.compare(s2);
34
if (ans < 0)
35
return -1;
36
else if (ans > 0)
37
return 1;
38
}
39

40
return 0;
41
}
42
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0