版本比较:1.2<1.3.1<1.5<1.5.5
思想:把点之间字符的转化为整数进行比较,如果比较出大小直接返回,相等就继续比较下个点之间的,直到比较出大小,否则两个版本相等。
#include<iostream>
#include<cstdlib>
using namespace std;
int compare(string version1, string version2)
{
int len1 = version1.length();
int len2 = version2.length();
int a = 0;
int b = 0;
int i = 0;
int j = 0;
while (i<len1 || j<len2)
{
a = 0;
b = 0;
while (i < len1 && version1[i] != '.')
{
a = a * 10 + version1[i] - '0';
i++;
}
while (j < len2 && version2[j] != '.')
{
b = b * 10 + version2[j] - '0';
j++;
}
if (a > b)
return 1;
if (a < b)
return -1;
i++;
j++;
}
return 0;
}
int main()
{
cout << compare("1.2","1.2.0");
system("pause");
return 0;
}