class Solution { public: int compareVersion(string version1, string version2) { vector<int> v1 = getVersionParts(version1); vector<int> v2 = getVersionParts(version2); int i = 0, j = 0; int len1 = v1.size(); int len2 = v2.size(); while (i < len1 && j < len2) { if (v1[i] < v2[i]) { return -1; } else if (v1[i] > v2[i]) { return 1; } i++, j++; } int r = 0; while (i < len1) { r += v1[i++]; } if (r != 0) { return 1; } r = 0; while (j < len2) { r += v2[j++]; } if (r != 0) { return -1; } return 0; } vector<int> getVersionParts(string& version) { vector<int> parts; int len = version.length(); int v = 0; char d = '