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; } };