Compare Version Numbers

來源:互聯網
上載者:User

標籤:style   blog   ar   io   color   os   sp   for   on   

Compare two version numbers version1 and version1.
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

C++實現代碼:

#include<iostream>#include<vector>#include<string>#include<sstream>#include<cstdlib>using namespace std;class Solution {public:    int compareVersion(string version1, string version2) {        istringstream is(version1);        istringstream iss(version2);        vector<string> vec1;        vector<string> vec2;        string tmp;        while(getline(is,tmp,‘.‘))        {            vec1.push_back(tmp);        }        while(getline(iss,tmp,‘.‘))        {            vec2.push_back(tmp);        }        int len1=vec1.size();        int len2=vec2.size();        int i=0,j=0;        while(i!=len1&&j!=len2)        {            if(atoi(vec1[i].c_str())<atoi(vec2[i].c_str()))                return -1;            else if(atoi(vec1[i].c_str())>atoi(vec2[i].c_str()))                return 1;            i++;            j++;        }        if(i==len1&&j==len2)            return 0;        while(i!=len1)        {            if(atoi(vec1[i].c_str())!=0)                return 1;            i++;        }        while(j!=len2)        {            if(atoi(vec2[j].c_str())!=0)                return -1;            j++;        }        return 0;    }};int main(){    string s1="01.23.0.0";    string s2="01.23";    Solution s;    cout<<s.compareVersion(s1,s2)<<endl;}

 

Compare Version Numbers

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.