1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| class Solution { public: int compareVersion(string version1, string version2) { vector<int> v1; vector<int> v2; int vt = 0; for(auto& ch : version1) { if(ch == '.') { v1.push_back(vt); vt = 0; } else { vt = vt * 10 + ch - '0'; } } v1.push_back(vt); while(!v1.empty() && v1.back() == 0) v1.pop_back(); vt = 0; for(auto& ch : version2) { if(ch == '.') { v2.push_back(vt); vt = 0; } else { vt = vt * 10 + ch - '0'; } } v2.push_back(vt); while(!v2.empty() && v2.back() == 0) v2.pop_back(); int m = v1.size(), n = v2.size(); for(int i = 0; i < min(m, n); ++i) { if(v1[i] > v2[i]) return 1; else if(v1[i] < v2[i]) return -1; } if(m > n) return 1; else if(m < n) return -1; return 0; } };
|