leetcode[165]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

class Solution {
public:
    int compareVersion(string version1, string version2) {
        int i=0,j=0;
        while(i<version1.length()||j<version2.length())
        {
            int num1=0,num2=0;
            while(i<version1.length())
            {
                if(version1[i]=='.')
                {
                    i++;
                    break;
                }
                else num1=num1*10+(version1[i++]-'0');
            }
            while(j<version2.length())
            {
                if(version2[j]=='.')
                {
                    j++;
                    break;
                }
                else num2=num2*10+(version2[j++]-'0');
            }
            if(num1<num2)return -1;
            if(num1>num2)return 1;
        }
        return 0;
    }
};

 

 

 
posted @ 2015-02-08 23:33  Vae永Silence  阅读(151)  评论(0编辑  收藏  举报