#include <vector> #include <string> #include <sstream> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 比较版本号 * @param version1 string字符串 * @param version2 string字符串 * @return int整型 */ int compare(string version1, string version2) { vector<int>v1, v2; split(version1, v1); split(version2, v2); int n = max(v1.size(), v2.size()); for(int i = 0; i < n; ++i){ int num1 = (i < v1.size()) ? v1[i] : 0; int num2 = (i < v2.size()) ? v2[i] : 0; if(num1 > num2){ return 1; }else if(num1 < num2){ return -1; } } return 0; } void split(const string &s, vector<int> &nums){ stringstream ss(s); string token; while(getline(ss,token,'.')){ nums.push_back(stoi(token)); } } };
C++ 数字分段