TOP101题解 | BM22#比较版本号#

比较版本号

https://www.nowcoder.com/practice/2b317e02f14247a49ffdbdba315459e7

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * @author Senky
 * @date 2023.04.26
 * @par url https://www.nowcoder.com/creation/manager/content/584337070?type=column&status=-1
 * @brief 将每一段版本号转换成十进制数,再相减
 *  等于0则对比下一段版本号
 *  不等于0则可直接返回结果
 * @param version1 string字符串 
 * @param version2 string字符串 
 * @return int整型
 */
#include <string.h>
int NumToDec(char** str)
{
    int dec = 0;
    while(**str != '.' && **str != '\0')
    {
        dec = dec * 10  + **str - '0';
        (*str)++;
    }
    if(**str != '\0') (*str)++;//此时指针指向'.',因此将指针指向下一个版本号的内容
    return dec;
}

int compare(char* version1, char* version2 ) {
    // write code here
    int ret = 0;
    
    while(*version1 != '\0' || *version2 != '\0')
    {
        ret = NumToDec(&version1) - NumToDec(&version2);

        if(ret>0) 
        {
            ret = 1;
            break;
        }
        else if(ret < 0) 
        {
            ret = -1;
            break;
        }
        else if(ret == 0) 
        {
            ret = 0;
            continue;
        }

    }

    return ret;
}

#TOP101#
TOP101-BM系列 文章被收录于专栏

系列的题解

全部评论

相关推荐

每晚夜里独自颤抖:1600一个月?
点赞 评论 收藏
分享
昨天 15:52
东南大学 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务