比较两个版本号 version1 和 version2。
如果 version1 大于 version2 返回 1,如果 version1 小于 version2 返回 -1, 除此以外 返回 0。
您可能认为版本字符串非空,并且只包含数字和 . 字符。
这个 . 字符不代表小数点,而是用于分隔数字序列。
例如,2.5 不是“两个半”或“差一半到三个版本”,它是第二个第一级修订版本的第五个二级修订版本。
以下是版本号排序的示例:
0.1 < 1.1 < 1.2 < 13.37
详见:https://leetcode.com/problems/compare-version-numbers/description/
class Solution {
public:
int compareVersion(string version1, string version2) {
int val1=0,val2=0;
int idx1=0,idx2=0;
while(idx1<version1.size()||idx2<version2.size())
{
val1=0;
while(idx1<version1.size())
{
if(version1[idx1]==‘.‘)
{
++idx1;
break;
}
val1=val1*10+version1[idx1++]-‘0‘;
}
val2=0;
while(idx2<version2.size())
{
if(version2[idx2]==‘.‘)
{
++idx2;
break;
}
val2=val2*10+version2[idx2++]-‘0‘;
}
if(val1>val2)
{
return 1;
}
else if(val1<val2)
{
return -1;
}
}
return 0;
}
};
参考:https://www.cnblogs.com/grandyang/p/4244123.html