class Solution {
public:
    // 我自己的解法 
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 比较版本号
     * @param version1 string字符串 
     * @param version2 string字符串 
     * @return int整型
     */
    int compare(string version1, string version2) {
        // write code here
        // 双指针

        int m = version1.size();
        int n = version2.size();

        int num1=0, num2=0;

        int pt1 = 0, pt2 = 0;
        char c1, c2;
        while(pt1<m || pt2<n) // 这里只要二者之一没遍历完 就继续 因为会有两者长度不一致 1.0.1, 1
        {
            
            while(version1[pt1]!='.' && pt1<m)// 累加数字 直到遇到.
            {
                c1 = version1[pt1];
                int d1 = c1-'0';
                num1 = 10*num1 + d1;
                pt1++;
            }
            
            while(version2[pt2]!='.' && pt2<n) //如果其中一个较短 那之后num就是0 也是有效的
            {
                c2 = version2[pt2];
                int d2 = c2-'0';
                num2 = 10*num2 + d2;
                pt2++;
            }

            if(num1>num2) // 相等的情况就不管 继续
            {
                return 1;
            }
            else if(num1<num2)
            {
                return -1;
            }
            // 比完1个修订号之后 就清零
            num1 = 0;
            num2 = 0;
            pt1++;
            pt2++;
   
        }
        // if(pt1<m)
        //     return 1;
        // if(pt2<n)
        //     return -1;
        return 0 ;
    }
};