Compare Version Numbers

来源:互联网 发布:用mac可以玩的游戏 编辑:程序博客网 时间:2024/06/07 07:15
class Solution {public:    int compareVersion(string version1, string version2) {        string::iterator iter1, iter2, iter3;        iter1 = version1.begin();        while(iter1 != version1.end() && *iter1 != '.')            iter1++;        if(iter1 == version1.end())            version1 += ".0";        iter1 = version2.begin();        while(iter1 != version2.end() && *iter1 != '.')            iter1++;        if(iter1 == version2.end())            version2 += ".0";        cout<< "first dot" << endl;        cout << version1 << endl;        cout << version2 << endl;        iter1 = version1.begin();        int counter = 0;        for(; iter1 != version1.end(); iter1++)            if(*iter1 == '.')                counter++;        if(counter < 2)            version1 += ".0";        iter1 = version2.begin();        counter = 0;        for(; iter1 != version2.end(); iter1++)            if(*iter1 == '.')                counter++;        if(counter < 2)            version2 += ".0";        cout<< "second dot" << endl;        cout << version1 << endl;        cout << version2 << endl;        iter1 = version1.begin();        counter = 0;        for(; iter1 != version1.end(); iter1++)            if(*iter1 == '.')                counter++;        if(counter < 3)            version1 += ".0";        iter1 = version2.begin();        counter = 0;        for(; iter1 != version2.end(); iter1++)            if(*iter1 == '.')                counter++;        if(counter < 3)            version2 += ".0";        cout<< "third dot" << endl;        cout << version1 << endl;        cout << version2 << endl;        int version1ForwardInt,version1BackwardInt,version1BBackwardInt, version1BBBackwardInt;        iter1 = version1.begin();        while(*iter1 != '.')            iter1++;        iter2 = iter1;        iter2++;        while(*iter2 != '.')            iter2++;        iter3 = iter2;        iter3++;        while(*iter3 != '.')            iter3++;        version1ForwardInt = stoi(string(version1.begin(), iter1));        version1BackwardInt = stoi(string(iter1 + 1, iter2));        version1BBackwardInt = stoi(string(iter2 + 1, iter3));        version1BBBackwardInt = stoi(string(iter3 + 1, version1.end()));        cout << version1ForwardInt << endl;        cout << version1BackwardInt << endl;        cout << version1BBackwardInt << endl;        cout << version1BBBackwardInt << endl;        int version2ForwardInt,version2BackwardInt,version2BBackwardInt, version2BBBackwardInt;        iter1 = version2.begin();        while(*iter1 != '.')            iter1++;        iter2 = iter1;        iter2++;        while(*iter2 != '.')            iter2++;        iter3 = iter2;        iter3++;        while(*iter3 != '.')            iter3++;        version2ForwardInt = stoi(string(version2.begin(), iter1));        version2BackwardInt = stoi(string(iter1 + 1, iter2));        version2BBackwardInt = stoi(string(iter2 + 1, iter3));        version2BBBackwardInt = stoi(string(iter3 + 1, version2.end()));        cout << version2ForwardInt << endl;        cout << version2BackwardInt << endl;        cout << version2BBackwardInt << endl;        cout << version2BBBackwardInt << endl;        if(version1ForwardInt > version2ForwardInt)            return 1;        if(version1ForwardInt < version2ForwardInt)            return -1;        if(version1ForwardInt == version2ForwardInt) {            if(version1BackwardInt > version2BackwardInt)                return 1;            if(version1BackwardInt < version2BackwardInt)                return -1;            if(version1BackwardInt == version2BackwardInt) {                if(version1BBackwardInt > version2BBackwardInt)                    return 1;                if(version1BBackwardInt < version2BBackwardInt)                    return -1;                if(version1BBackwardInt == version2BBackwardInt) {                    if(version1BBBackwardInt > version2BBBackwardInt)                        return 1;                    if(version1BBBackwardInt < version2BBBackwardInt)                        return -1;                    return 0;                }               }        }        //return 0;    }};
0 0
原创粉丝点击