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

leetcode 165. Compare Version Numbers

时间:2016-01-05 00:03:18      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:

Compare two version numbers version1 and version2.
If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0.

You may assume that the version strings are non-empty and contain only digits and the . character.
The . character does not represent a decimal point and is used to separate number sequences.
For instance, 2.5 is not "two and a half" or "half way to version three", it is the fifth second-level revision of the second first-level revision.

Here is an example of version numbers ordering:

0.1 < 1.1 < 1.2 < 13.37


题意非常明白,就是按照version比较规则来比较。
自己没怎么想,看了别人的解法。

碰到‘.’之前一直累加数,碰到‘.‘进行比较,直至字符串结束。
字符串转数字s[i]-‘0‘。
就没有什么难点了。

 1 class Solution {
 2 public:
 3 
 4     int compareVersion(string version1, string version2) {
 5         int val1=0,val2=0;
 6         int len1=version1.length();
 7         int len2=version2.length();
 8         int i=0,j=0;
 9         
10         while(i<len1||j<len2){
11             val1=0;val2=0;
12             while(i<len1){
13             if(version1[i]==.)  {i++;break;}
14             else  val1=val1*10+version1[i++]-0;}
15             while(j<len2){
16             if(version2[j]==.)  {j++;break;}
17             else val2=val2*10+version2[j++]-0;}
18             
19             if(val1>val2) return 1;
20             if(val1<val2) return -1;
21         }        
22         return 0;
23         
24     }
25 };

 




leetcode 165. Compare Version Numbers

标签:

原文地址:http://www.cnblogs.com/LUO77/p/5100581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!