Compare Version Numbers leetcode

来源:互联网 发布:wow7.0采集数据库 编辑:程序博客网 时间:2024/05/29 02:56

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
注意!!,小数部分2.5不是比3小0.5,而是在第2个版本的第5个数,即2.5<2.50; 2.50,是在第2的第5个数!!
class Solution {public:int compareVersion(string version1, string version2) {    int val1,val2;    val1=val2=0;    int idex1,idex2;    idex1=idex2=0;    while(idex1<version1.size()||idex2<version2.size())    {        //找第一个的整数部分       while(idex1<version1.size())       {           if(version1[idex1]!='.')            {   val1=val1*10+(version1[idex1]-'0');                idex1++;            }            else            {   idex1++;                break;            }       }        while(idex2<version2.size())       {           if(version2[idex2]!='.')            {   val2=val2*10+(version2[idex2]-'0');                idex2++;            }            else            {   idex2++;                break;            }       }       if(val1>val2)       return 1;       if(val1<val2)       return -1;       val1=val2=0;    }    return 0;}};


0 0