描述
判断两个版本号的大小
解决
从左往右,以’.’为分割,逐次比较
class Solution {
public:
int compareVersion(string version1, string version2) {
int length1 = version1.size();
int length2 = version2.size();
int index1 = 0, index2 = 0;
while (index1 < length1 || index2 < length2)
{
int st1 = index1, st2 = index2, cnt1 = 0, cnt2 = 0;
while (index1 < length1 && version1[index1] != '.')
{
++index1;
++cnt1;
}
int sum1 =0;
if (st1 < length1)
sum1 = atoi(version1.substr(st1, cnt1).c_str());
while (index2 < length2 && version2[index2] != '.')
{
++index2;
++cnt2;
}
int sum2 = 0;
if (st2 < length2)
sum2 = atoi(version2.substr(st2, cnt2).c_str());
if (sum1 < sum2)
return -1;
else if (sum1 > sum2)
return 1;
++index1;
++index2;
}
return 0;
}
};