题解 | #比较版本号#
比较版本号
https://www.nowcoder.com/practice/2b317e02f14247a49ffdbdba315459e7
难度不大,不过少有地一次调试都没有秒杀了……庆祝一下
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 比较版本号 * @param version1 string字符串 * @param version2 string字符串 * @return int整型 */ void core(string&version,vector<int>& v){ int i=0,j=0,k=0,l=0; for(i=0;i<version.size();i++){ for(j=i;version[j]!='.'&&j<version.size();j++){ } string s; for(k=i;k<=j;k++){ s+=version[k]; } v[l]=stoi(s); l++; i=j; } } int compare(string version1, string version2) { // write code here int i=0,j=0,k; for(auto c : version1){ if(c!='.')i++; } for(auto c:version2){ if(c!='.')j++; } k=max(i,j)+1;//版本号被分割了多少部分 vector<int> v1(k,0),v2(k,0); core(version1,v1); core(version2,v2); for(i=0;i<k;++i){ if(v1[i]>v2[i]){return 1; }else if(v2[i]>v1[i]){ return -1; } } return 0; } };