1. 程式人生 > >165.比較版本號

165.比較版本號

比較兩個版本號 version1 和 version2。 如果 version1 version2 返回 1,如果 version1 version2 返回 -1, 除此之外返回 0

你可以假設版本字串非空,並且只包含數字和 . 字元。

 . 字元不代表小數點,而是用於分隔數字序列。

例如,2.5 不是“兩個半”,也不是“差一半到三”,而是第二版中的第五個小版本。

示例 1:

輸入: version1 = "0.1", version2 = "1.1"輸出: -1

示例 2:

輸入: version1 = "1.0.1", version2 = "1"輸出: 1

示例 3:

輸入: version1 = "7.5.2.4", version2 = "7.5.3"輸出: -1

class Solution { public:     int compareVersion(string version1, string version2) {         int n1 = version1.size(), n2 = version2.size();         int i = 0, j = 0, d1 = 0, d2 = 0;         string v1, v2;         while (i < n1 || j < n2) {             while (i < n1 && version1[i] != '.') {                 v1.push_back(version1[i++]);             }             d1 = atoi(v1.c_str());             while (j < n2 && version2[j] != '.') {                 v2.push_back(version2[j++]);             }             d2 = atoi(v2.c_str());             if (d1 > d2) return 1;             else if (d1 < d2) return -1;             v1.clear(); v2.clear();             ++i; ++j;         }         return 0;     } };