题意:比较版本号的大小。
思路:以点号为界,逐个比较。
class Solution {
public:
int compareVersion(string version1, string version2) {
vector<string> vs1;
vector<string> vs2;
string temps;
for(unsigned i = 0;i < version1.length(); ++ i) {
if(version1[i] == '.') {
vs1.push_back(temps);
temps = "";
continue;
}
temps += version1[i];
}
vs1.push_back(temps);
temps = "";
for(unsigned i = 0; i < version2.length(); ++ i) {
if(version2[i] == '.') {
vs2.push_back(temps);
temps = "";
continue;
}
temps += version2[i];
}
vs2.push_back(temps);
int vi = 0;
while(vi < vs1.size() || vi < vs2.size()) {
int v1 = 0;
int v2 = 0;
if(vi < vs1.size())
for(unsigned i = 0; i < vs1[vi].length(); ++ i) {
v1 = v1 * 10 + (vs1[vi][i] - '0');
}
if(vi < vs2.size())
for(unsigned i = 0; i < vs2[vi].length(); ++ i) {
v2 = v2 * 10 + (vs2[vi][i] - '0');
}
if(v2 > v1) return -1;
if(v2 < v1) return 1;
vi ++;
}
return 0;
}
};