码迷,mamicode.com
首页 > 其他好文 > 详细

Compare Version Numbers 165

时间:2015-01-20 10:07:48      阅读:181      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!