比较版本高低。
版本的格式:1.1.1
可能有多个分隔符。
相等则返回0, 大于返回1, 小于返回-1.
【思路】
分别比较分隔符的每段,转换成十进制后的大小;
相等则继续比较下一段,不等则返回相应的结果。
【my code】
int compareVersion(string version1, string version2) { int v1a=0,v1b=0,v2a=0,v2b=0; int i=0, j=0; int len1=version1.size(), len2=version2.size(); while(i<len1||j<len2){ while(version1[i]!='.'&&i<len1){ v1a=v1a*10+version1[i]-'0'; i++; } while(version2[j]!='.'&&j<len2){ v2a=v2a*10+version2[j]-'0'; j++; } if(v1a==v2a){ i++; j++; v1a=0; v2a=0; continue; } else if(v1a>v2a) return 1; else return -1; } return 0; }
【评价】
用时:2ms,在c的范围内,结果比较好。
可取可取。