您的位置:首页 > 其它

Leetcode Compare Version Numbers

2014-12-16 12:02 381 查看
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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: