题解 | #比较版本号#
比较版本号
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;//到这里表示两个版本号相等
}
腾讯云智研发成长空间 305人发布
