标签:
leetcode - Compare Version Numbers
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
1 class Solution { 2 public: 3 int compareVersion(string version1, string version2) { 4 string::iterator it1; 5 int ver1[1000], ver2[1000]; 6 memset(ver1,0,sizeof(ver1)); 7 memset(ver2,0,sizeof(ver2)); 8 it1=version1.begin(); 9 int i = 0; 10 11 while(it1!=version1.end()){ 12 ver1[i] = ver1[i]*10 + (*it1)-‘0‘; 13 it1++; 14 if(*it1==‘.‘) {i++;it1++;} 15 } 16 17 18 it1 = version2.begin(); 19 int j = 0; 20 while(it1!=version2.end()){ 21 ver2[j] = ver2[j]*10 + (*it1)-‘0‘; 22 it1++; 23 if(*it1==‘.‘) {j++;it1++;} 24 } 25 26 for(int k=0; k<=max(i,j); k++ ){ 27 if(ver1[k]>ver2[k]) return 1; 28 if(ver1[k]<ver2[k]) return -1; 29 } 30 return 0; 31 32 } 33 };
leetcode - Compare Version Numbers
标签:
原文地址:http://www.cnblogs.com/shnj/p/4511632.html