题解 | 对某一题解的拙劣模仿(修改了一些问题,比较适合初学
比较版本号
https://www.nowcoder.com/practice/2b317e02f14247a49ffdbdba315459e7
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 比较版本号 * @param version1 string字符串 * @param version2 string字符串 * @return int整型 */ int compare(char* version1, char* version2 ) { int v1=0,v2=0; while(*version1!='\0'||*version2!='\0'){ v1=0; v2=0; //1.找到.的位置,并把.前面的字符串转化成十进制的数字 while(*version1!='.'&&*version1!='\0'){ v1=v1*10+*version1-48; version1++; } while(*version2!='.'&&*version2!='\0'){ v2=v2*10+*version2-48; version2++; } //2.比较数值的大小,如果v1大于v2返回1,反之返回-1或者0 if(v1>v2){ return 1; }else if(v1<v2){ return -1; } //3.将字符串遍历完,准备跳出循环(即相等情况) if(*version1>0){ version1++; } if(*version2>0){ version2++; } if(*version1=='\0'&&*version2=='\0'){ break; } } //4.最后返回0 return 0; }