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系列 文章被收录于专栏
系列的题解