Compare two version numbers
version1
and
version2
.
If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0.
class Solution {
public:
int compareVersion(string version1, string version2) {
vector<int> vec1,vec2;
VersiontoInteger(version1,vec1);
VersiontoInteger(version2,vec2);
int L=max(vec1.size(),vec2.size());
for(int i=0;i<L;i++){
int v1=i<vec1.size()?vec1[i]:0;//in case of different size
int v2=i<vec2.size()?vec2[i]:0;
if(v1>v2)
return 1;
else if(v1<v2)
return -1;
}
return 0;
}
private:
void VersiontoInteger(string version,vector<int>&vec){
int tmp=0;
for(int i=0;i<version.size();i++){
if(version[i]=='0'&&tmp==0)
continue;
else if(version[i]!='.'){
tmp=tmp*10+atoi(&version[i]);//function of atoi
}
else if(version[i]=='.'){
vec.push_back(tmp);
tmp=0;
}
}
vec.push_back(tmp);//in case of '1''0'with no '.'
}
};