标签:
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
Runtime: 0ms
1 class Solution { 2 public: 3 int compareVersion(string version1, string version2) { 4 int m = version1.size(), n = version2.size(); 5 int i = 0, j = 0; 6 7 while(i < m || j < n){ 8 int temp1 = 0, temp2 = 0; 9 while(i < m && version1[i] != ‘.‘){ 10 temp1 = temp1 * 10 + version1[i] - ‘0‘; 11 i++; 12 } 13 while(j < n && version2[j] != ‘.‘){ 14 temp2 = temp2 * 10 + version2[j] - ‘0‘; 15 j++; 16 } 17 if(temp1 > temp2) return 1; 18 if(temp1 < temp2) return -1; 19 i++; 20 j++; 21 } 22 return 0; 23 } 24 };
标签:
原文地址:http://www.cnblogs.com/amazingzoe/p/4860173.html