你版剩我不什么split
只能一个个慢慢比较了
写出一堆垃圾code
紫砂
思路:
就以'.'为分界去计算version的大小
cnt=cnt*10+(int)(version[i]-'0')
阿如果是leading 0就略过
如果现在的数字>0,就不要掠过0
就算有一个version到底也不要跳出,要去看另外一个version还有没有值
C code :
int compareVersion(char* version1, char* version2) {
int idx1=0,idx2=0,n=strlen(version1),m=strlen(version2);
while(idx1<n || idx2<m){
int cnt1=0,cnt2=0;
while(idx1<n && version1[idx1]!='.'){
if (cnt1>0 || version1[idx1]!='0'){
cnt1=cnt1*10+(int)(version1[idx1]-'0');
}
idx1++;
}
while(idx2<m && version2[idx2]!='.'){
if (cnt2>0 || version2[idx2]!='0'){
cnt2=cnt2*10+(int)(version2[idx2]-'0');
}
idx2++;
}
idx1++;
idx2++;
if (cnt1>cnt2){
return 1;
}else if (cnt2>cnt1){
return -1;
}
}
return 0;
}