思路:

1.将两个版本中的小数点全部去掉

2.将字符串类型转换为整型

3.比较两个数大小

 

代码:

class Solution {
public:
    int compareVersion(string version1, string version2) {
        int i=0,j=0;
        while(i<version1.size() || j<version2.size())  //指针不为空
        {
            int x=i,y=j;
            while(x<version1.size() && version1[x] !='.') x++;
            while(y<version2.size() && version2[y] !='.') y++; //去除小数点
            // atoi  函数原型:int atoi(char*str)  将字符串转化成一个整数型,
            // substr  函数原型:s.substr(pos,n)  
            int a=i==x? 0: atoi(version1.substr(i,x-i).c_str());
            int b=j==y? 0: atoi(version2.substr(j,y-j).c_str());
            if(a>b) return 1;
            if(a<b) return -1;
            i=x+1;
            j=y+1;
        }
        return 0;
    }
};