码迷,mamicode.com
首页 > 其他好文 > 详细

Compare Version Numbers

时间:2015-10-31 20:05:11      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

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;
}
  • 恶心的题目,会出现1.0.1

Compare Version Numbers

标签:

原文地址:http://www.cnblogs.com/dylqt/p/4926040.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!