首页 > 其他 > 详细

Compare Version Numbers 165

时间:2015-01-20 10:07:06      阅读:229      评论:0      收藏:0      [点我收藏+]

题目描述:

给出两个字符串表示的版本号,比较这两个版本号。

如果第一个大返回1,如果第二个大返回-1,如果相同返回0

两个版本号中都只包含数字字符和 ‘.‘ 

例如

0.1 < 1.1 < 1.2 < 13.37
1.0=1

 

题目分析:

字符串处理,把字符串中拆分成数字


代码:

 1 int getNum(string str,int &index){
 2         int ret=0;
 3         if(index<str.length() && (str[index]>9 || str[index]<0))index++;         ///去掉前面的非数字字符,本题中就是 ‘.‘
 4         for(;index<str.length() && str[index]<=9 && str[index]>=0;index++)ret=ret*10+str[index]-0;
 5 
 6         return ret;
 7 }
 8 
 9 int compareVersion(string version1, string version2) {
10         int index1,index2;
11         index1=index2=0;
12         while(index1<version1.length() &&index2<version2.length()){
13                 int v1=getNum(version1,index1);
14                 int v2=getNum(version2,index2);
15                 if(v1>v2)return 1;
16                 if(v1<v2)return -1;
17         }
18 
19         while(index1<version1.length()){
20                 int v1=getNum(version1,index1);
21                 if(v1>0)return 1;               ///后面的数字是0的话,还是相等
22         }
23         while(index2<version2.length()){
24                 int v2=getNum(version2,index2);
25                 if(v2>0)return -1;
26         }
27         return 0;
28 }

 

Compare Version Numbers 165

原文:http://www.cnblogs.com/li-xingtao/p/4235304.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!