LeetCode之Compare Version Numbers

来源:互联网 发布:js调用css3动画 编辑:程序博客网 时间:2024/05/18 01:40
/*解题思路:比较每个.之间的数字即可,但是题中有一些小trick,需要注意。*/class Solution {public:int compareVersion(string version1, string version2) {    size_t i1 = 0, i2 = 0;    size_t left1 = 0, left2 = 0;    int n1, n2;    while(i1 < version1.size() || i2 < version2.size()){        n1 = 0;        while(i1 < version1.size()){            if(i1 == version1.size()-1){                n1 = string2num(version1.substr(left1, i1 - left1 + 1));                ++i1;                break;            }            else if(version1[i1] == '.'){               n1 = string2num(version1.substr(left1, i1 - left1));               left1 = i1 + 1;               ++i1;               break;            }            ++i1;        }        n2 = 0;        while(i2 < version2.size()){            if(i2 == version2.size() - 1){                n2 = string2num(version2.substr(left2, i2 - left2 + 1));                ++i2;                break;            }            else if(version2[i2] == '.'){                n2 = string2num(version2.substr(left2, i2 - left2));                left2 = i2 + 1;                ++i2;                break;            }            ++i2;        }        if(n1 < n2) return -1;        else if(n1 > n2) return 1;    }    return 0;}int string2num(const string &s){if(s.empty()) return 0;int num;stringstream stream;stream << s;stream >> num;return num;}};

0 0