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 };