class Solution {
private:
int compareNumber(string num1,string num2){
int num1Len = num1.length(), num2Len = num2.length();
if(num1Len > num2Len){
return 1;
}else
if(num1Len < num2Len){
return -1;
}else{
if(num1 > num2){
return 1;
}else
if(num1 < num2){
return -1;
}
}
return 0;
}
string retrieveNum(string version, int& pos, int len){
string ans = "";
if(pos<len){
for(pos+=1;pos<len && version[pos]=='0'&& version[pos]!='.';pos++);
for(;pos<len && version[pos]!='.';ans.push_back(version[pos++]));
}
return ans;
}
public:
int compareVersion(string version1, string version2) {
int res = 0, i = -1, j = -1, v1Len = version1.length(), v2Len = version2.length();
do{
string v1 = retrieveNum(version1,i,v1Len);
string v2 = retrieveNum(version2,j,v2Len);
res = compareNumber(v1,v2);
}while(!res && (i < v1Len || j < v2Len) );
return res;
}
};
Leetcode Compare Version Numbers
最新推荐文章于 2016-12-18 10:34:10 发布