比较两个版本号 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