题目:

代码(首刷看解析 2024年4月4日):
class Solution {
public:
int compareVersion(string version1, string version2) {
int n1 = version1.size(), n2 = version2.size();
int i = 0, j = 0;
while (i < n1 || j < n2) {
int num1 = 0, num2 = 0;
while (i < n1 && version1[i] != '.') {
num1 = num1 * 10 + (version1[i] - '0');
i++;
}
while (j < n2 && version2[j] != '.') {
num2 = num2 * 10 + (version2[j] - '0');
j++;
}
if (num1 > num2) return 1;
else if (num1 < num2) return -1;
i++,j++;
}
return 0;
}
};
代码(二刷看解析 2024年9月11日)
class Solution {
public:
int compareVersion(string version1, string version2) {
int i = 0, j = 0;
while (i < version1.size() || j < version2.size()) {
long long num1 = 0;
long long num2 = 0;
while (i < version1.size() && version1[i] != '.') {
num1 = num1 * 10 + version1[i] - '0';
i++;
}
while (j < version2.size() && version2[j] != '.') {
num2 = num2 * 10 + version2[j] - '0';
j++;
}
if (num1 > num2) return 1;
else if (num1 < num2) return -1;
// 跳过'.'
i++;
j++;
}
return 0;
}
};