Compare two version numbers version1 and version2.
If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0.
You may assume that the version strings are non-empty and contain only digits and the .
character.
The .
character does not represent a decimal point and is used to separate number sequences.
For instance, 2.5
is not "two and a half" or "half way to version three", it is the fifth second-level revision of the second first-level revision.
0.1 < 1.1 < 1.2 < 13.37注意getline这种分割字符串的能力!
class Solution {
public:
int compareVersion(string version1, string version2) {
stringstream ss1(version1);
stringstream ss2(version2);
while (!ss1.eof() || !ss2.eof()){//||
string v1="0", v2="0";//"0"
getline(ss1, v1, '.');
getline(ss2, v2, '.');
int nv1 = stoi(v1);
int nv2 = stoi(v2);
if (nv1 < nv2){
return -1;
}
else if (nv1>nv2){
return 1;
}
}
return 0;
}
};