class Solution {
public:
vector<string> handle(string version){
vector<string> res;
string str;
int n = version.length();
for(char ch:version){
if(ch == '.'){
while(str.length() > 1 && str[0] == '0') str.erase(0, 1);
res.push_back(str);
str = "";
}else str += ch;
}
while(str.length() > 1 && str[0] == '0') str.erase(0, 1);
res.push_back(str);
return res;
}
int cmp(string a, string b){
int m = a.length(), n = b.length();
if(m > n) return 1;
else if(m < n) return -1;
for(int i = 0; i < n; i ++){
if(a[i] > b[i]) return 1;
else if(a[i] < b[i]) return -1;
}
return 0;
}
int compare(string version1, string version2) {
// write code here
vector<string> a = handle(version1);
vector<string> b = handle(version2);
int m = a.size(), n = b.size();
int maxn = max(m, n);
for(int i = m; i < maxn; i ++) a.push_back("0");
for(int i = n; i < maxn; i ++) b.push_back("0");
for(int i = 0; i < maxn; i ++){
int c = cmp(a[i], b[i]);
if(c != 0) return c;
}
return 0;
}
};