https://leetcode.com/problems/compare-version-numbers/description/
如果有先导0,转化int可能更好
class Solution {
public:
vector<int> v2v(string version1) {
int ptr = 0, st = 0;
vector<int> ret;
while (ptr <= version1.size() ) {
if (version1[ptr] == '.' || ptr == version1.size() ) {
int v = stoi( version1.substr(st, ptr-st) );
st = ptr + 1;
ret.push_back(v);
}
ptr++;
}
return ret;
}
int compareVersion(string version1, string version2) {
vector<int> v1 = v2v(version1);
vector<int> v2 = v2v(version2);
int i = 0;
for (; i < v1.size() && i < v2.size(); i++) {
if (v1[i] == v2[i]) {
continue;
} else {
if (v1[i] > v2[i])
return 1;
else
return -1;
}
}
if (v2.size() > v1.size()) {
for (int j = i; j < v2.size(); j++)
if (v2[j] != 0)
return -1;
}
else {
if (v1.size() > v2.size()) {
for (int j = i; j < v1.size(); j++) {
if (v1[j] != 0)
return 1;
}
}
}
return 0;
}
};