class Solution {
  public:
    /**
    分部分进行比较,去除前导零,每部分比完清零,不止有三节
     */
    int compare(string version1, string version2) {
        int num1 = 0, num2 = 0;
        int index1 = 0, index2 = 0;

        while (index1 < version1.size() || index2 < version2.size()) {
            get_num(index1, num1, version1);
            get_num(index2, num2, version2);
            if (num1 - num2 > 0) {
                return 1;
            } else if (num1 - num2 < 0) {
                return -1;
            }

            num1=0, num2=0;
            index1++;
            index2++;
        }

        return 0;
    }

    void get_num(int& index, int& num, string& version) {
        while (index < version.size() && version[index] == '0') { //忽略前导零
            index++;
        }
        while (index < version.size() && version[index] != '.') {
            num = num * 10 + (version[index] - '0');
            index++;
        }
    }
};