首页 > 其他 > 详细

Compare Version Numbers

时间:2015-10-31 20:03:14      阅读:220      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!