165. Compare Version Numbers

来源:互联网 发布:阳春巿网络问政 编辑:程序博客网 时间:2024/05/17 02:19

Compare two version numbers version1 and version2.
If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0.

You may assume that the version strings are non-empty and contain only digits and the. character.
The . character does not represent a decimal point and is used to separate number sequences.
For instance, 2.5 is not "two and a half" or "half way to version three", it is the fifth second-level revision of the second first-level revision.

Here is an example of version numbers ordering:

0.1 < 1.1 < 1.2 < 13.37



比较版本的大小。比较每个部分的数的大小。


代码:

class Solution{public:int compareVersion(string version1, string version2){int i1 = 0, i2 = 0, n1 = version1.size(), n2 = version2.size();while(i1 < n1 || i2 < n2){int sum1 = 0, sum2 = 0;while(i1 < n1){if(version1[i1] == '.') break;sum1 = sum1 * 10 + (version1[i1++] - '0');}while(i2 < n2){if(version2[i2] == '.') break;sum2 = sum2 * 10 + (version2[i2++] - '0');}if(sum1 != sum2) return sum1 > sum2 ? 1 : -1;i1++;i2++;}return 0;}};


0 0
原创粉丝点击