Easy
Compare Version Numbers — C++
Full explanation · Time O(n) · Space O(1)
// Time: O(n)
// Space: O(1)
class Solution {
public:
int compareVersion(string version1, string version2) {
const int n1 = version1.length(), n2 = version2.length();
for (int i = 0, j = 0; i < n1 || j < n2; ++i, ++j) {
int v1 = 0, v2 = 0;
while (i < n1 && version1[i] != '.') {
v1 = v1 * 10 + version1[i++] - '0';
}
while (j < n2 && version2[j] != '.') {
v2 = v2 * 10 + version2[j++] - '0';
}
if (v1 != v2) {
return v1 > v2 ? 1 : -1;
}
}
return 0;
}
};