您的位置:首页 > 其它

[LeetCode] Compare Version Numbers

2015-03-10 00:08 274 查看
关于该方法的解释,在博文《[C++杂记] string串切分》中有部分介绍。思路还不是很清晰,文章还会整理~~

</pre><pre name="code" class="cpp">class Solution {
public:
int compareVersion(string version1, string version2) {

const char *versioncc1 = version1.c_str();
const char *versioncc2 = version2.c_str();

char* versionc1 = new char[strlen(versioncc1)];
char* versionc2 = new char[strlen(versioncc2)];

strcpy(versionc1, versioncc1);
strcpy(versionc2, versioncc2);

char *save1;
char *save2;

char* token1 = strtok_r(versionc1, ".", &save1);
char* token2 = strtok_r(versionc2, ".", &save2);
while(token1 != NULL && token2 != NULL) {
int token1Int = atoi(token1);
int token2Int = atoi(token2);
if(token1Int < token2Int) return -1;
else if(token1Int > token2Int) return 1;
token1 = strtok_r(NULL, ".", &save1);
token2 = strtok_r(NULL, ".", &save2);
}
if(token1==NULL && token2!=NULL) {
while(token2) {
if( atoi(token2) )
return -1;
token2 = strtok_r(NULL, ".", &save2);
}
}else if(token1!=NULL && token2==NULL) {
while(token1) {
if( atoi(token1) )
return 1;
token1 = strtok_r(NULL, ".", &save1);
}
}else{
return 0;
}
}
};


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: