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

【LeetCode】165 - Compare Version Numbers

时间:2015-08-08 22:36:56      阅读:104      评论: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

Solution:类似于split的方法把字符串解析, 遇到‘.‘就判断之前的sum1和sum2

 1 class Solution {
 2 public:
 3     int compareVersion(string version1, string version2) {
 4         int sum1=0,sum2=0;
 5         int n1=version1.size(),n2=version2.size();
 6         for(int i=0,j=0;i<n1||j<n2;i++,j++){
 7             while(i<n1&&version1[i]!=.){
 8                 sum1=sum1*10+version1[i]-0;
 9                 i++;
10             }
11             while(j<n2&&version2[j]!=.){
12                 sum2=sum2*10+version2[j]-0;
13                 j++;
14             }
15             if(sum1>sum2)return 1;
16             else if(sum1<sum2)return -1;
17             else{
18                 sum1=0;
19                 sum2=0;
20             }
21         }
22         return 0;
23     }
24 };

 

【LeetCode】165 - Compare Version Numbers

标签:

原文地址:http://www.cnblogs.com/irun/p/4713902.html

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