题解 | #比较版本号#

比较版本号

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

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 比较版本号
 * @param version1 string字符串
 * @param version2 string字符串
 * @return int整型
 */
#include <stdio.h>
#include <string.h>
int compare(char* version1, char* version2 ) {
    int v1 = 0, v2 = 0;//v1用来存储第一个版本号两个'.'之间的数字大小,v2同理
    while (*version1 != '\0' || *version2 != '\0') {//判断结束的条件时两个数组都指向字符串结束标志
        v1 = 0;//每次循环初始时都得置0
        v2 = 0;
        while (*version1 != '.' && *version1 != '\0') {//当指针不指向字符串结束位置且不为空时,循环继续
            v1 = v1 * 10 + *version1 - '0';//将字符串中的数字转换为int型
            version1++;//指针的位置+1
        }
        while (*version2 != '.' && *version2 != '\0') {//与v1同理
            v2 = v2 * 10 + *version2 - '0';
            version2++;
        }
        if (v1 > v2) {//判断版本号大小
            return 1;
        } else if (v1 < v2) {
            return -1;
        }
        if (*version1 != '\0') {
            version1++;
        }

        if (*version1 ==*version2) {
            return 0;
        }
        if (*version2 != '\0') {
            version2++;//跳过字符串为'.'的位置
        }
    }
    return 0;//到这里表示两个版本号相等
}

全部评论

相关推荐

FFFoly:我也是,现在已经到了学长说的 能面试侃侃而谈的阶段了,但是已经没有公司给我面了
远程面试的尴尬瞬间
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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