比較兩個(gè)版本號(hào) version1 和 version2羞延。
如果 version1 > version2 返回 1斑司,如果 version1 < version2 返回 -1, 除此之外返回 0滓窍。
你可以假設(shè)版本字符串非空碍庵,并且只包含數(shù)字和 . 字符。
. 字符不代表小數(shù)點(diǎn)割按,而是用于分隔數(shù)字序列膨报。
例如,2.5 不是“兩個(gè)半”适荣,也不是“差一半到三”现柠,而是第二版中的第五個(gè)小版本。
示例 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;
}
};