165. Compare Version Numbers

来源:互联网 发布:阿里云是什么意思 编辑:程序博客网 时间:2024/06/05 04:42

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:    vector<int> change(string version)    {        vector<int> m;        if(version.size()<=0)            return m;        int n=0;        while(version.find('.',n)!=-1)        {            int j=version.find('.',n);            string str=version.substr(n,j-n);            m.push_back(atoi(str.c_str()));            n=j+1;        }        string temp=version.substr(n);        int temp1=atoi(temp.c_str());        m.push_back(temp1);        return m;    }    int compareVersion(string version1, string version2)     {        vector<int> v1=change(version1);        vector<int> v2=change(version2);        for(int i=0;i<abs(v1.size()-v2.size());++i)        {            if(v1.size()<v2.size())                v1.push_back(0);            else                v2.push_back(0);        }        for(int i=0;i<max(v1.size(),v2.size());++i)        {            if(v1[i]<v2[i])                return -1;            if(v1[i]>v2[i])                return 1;        }        return 0;    }};

0 0
原创粉丝点击