class Solution {
public:
/**
分部分进行比较,去除前导零,每部分比完清零,不止有三节
*/
int compare(string version1, string version2) {
int num1 = 0, num2 = 0;
int index1 = 0, index2 = 0;
while (index1 < version1.size() || index2 < version2.size()) {
get_num(index1, num1, version1);
get_num(index2, num2, version2);
if (num1 - num2 > 0) {
return 1;
} else if (num1 - num2 < 0) {
return -1;
}
num1=0, num2=0;
index1++;
index2++;
}
return 0;
}
void get_num(int& index, int& num, string& version) {
while (index < version.size() && version[index] == '0') { //忽略前导零
index++;
}
while (index < version.size() && version[index] != '.') {
num = num * 10 + (version[index] - '0');
index++;
}
}
};