leetcode 165 Compare Version Numbers C++

来源:互联网 发布:dns域名系统 编辑:程序博客网 时间:2024/06/15 05:37

题目有一点没说明白,就是这个‘.’可能不止一个,可能有好多个,比如1.1.1.1.1.1.1

所以方式就是把所有的数字都提取出来,并且将两个数组用0对齐。

然后再比较。

    int compareVersion(string version1, string version2) {        vector<int> vec1 = stringToArray(version1);        vector<int> vec2 = stringToArray(version2);        int len1 = vec1.size();        int len2 = vec2.size();                while(len1<len2){            vec1.push_back(0);            len1++;        }        while(len2<len1){            vec2.push_back(0);            len2++;        }                for (int i = 0;i<len1;i++){            if(vec1[i]<vec2[i]) return -1;            else if(vec1[i]>vec2[i]) return 1;        }        return 0;    }        vector<int> stringToArray(string str){        vector<int> vec;        int cur = 0;        int index;         string subStr;        while((index = str.find('.',cur)) != -1){            subStr = str.substr(cur,index - cur);            vec.push_back(atoi(subStr.c_str()));            cur = index + 1;        }        subStr = str.substr(cur,str.size());        vec.push_back(atoi(subStr.c_str()));        return vec;    }


0 0