标签:
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
int compareVersion(char* version1, char* version2) { int v1 = 0, v2 = 0; while(*version1 || *version2) { while(*version1 && *version1 != ‘.‘) { v1 = v1 * 10 + *version1 - ‘0‘; version1++; } while(*version2 && *version2 != ‘.‘) { v2 = v2 * 10 + *version2 - ‘0‘; version2++; } if(v1 > v2) return 1; else if(v2 > v1) return -1; else { if(*version1) version1++; if(*version2) version2++; v1 = v2 = 0; } } return 0; }
标签:
原文地址:http://www.cnblogs.com/dylqt/p/4926040.html