题解 | #比较版本号#

比较版本号

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;


    }
};

全部评论

相关推荐

11-09 11:01
济南大学 Java
Java抽象带篮子:外卖项目真得美化一下,可以看看我的详细的外卖话术帖子
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务