题解 | #比较版本号#

比较版本号

https://www.nowcoder.com/practice/2b317e02f14247a49ffdbdba315459e7?tpId=295&tqId=1024572&ru=/exam/oj&qru=/ta/format-top101/question-ranking&sourceUrl=%2Fexam%2Foj


class Solution {
public:
    int compare(string version1, string version2) {
        // write code here
        int i=0,j=0;
        int length1 = version1.size(),length2 = version2.size();
        while(i<length1 && j<length2)
        {
            int num1=0,num2=0;
            while(i<length1 && version1[i]!='.')
            {
                num1 = num1*10 + version1[i]-'0';
                i++;
            }            
            while(j<length2 && version2[j]!='.')
            {
                num2 = num2*10 +version2[j]-'0';
                j++;
            }
            if(num1>num2)
                return 1;
            if(num2>num1)
                return -1;
            i++,j++;
        }
        while(i<length1)
        {
            if(version1[i] != '0' && version1[i] !='.')
                return 1;
            else
                i++;
        }
        while(j<length2)
        {
            if(version2[j] != '0' && version2[j] !='.')
                return -1;
            else
                j++;
        }
        return 0;

    }
};

定义一个i,j指针依次去遍历string。

每次进去拿出一个修订号,只有version[i/j]=='.'才停止。

然后比较即可。

最后需要注意一下如果全为0得遍历才可知道是否有问题。

#牛客创作赏金赛#
牛客网刷题记录 文章被收录于专栏

本人认为值得记录的一些题

全部评论

相关推荐

03-15 12:48
门头沟学院 Java
牛牛要早起:这个一般就跟你说有高薪,然后叫你买车,之后血亏
点赞 评论 收藏
分享
爱吃肉的伊登在写日记:好棒,27届简历能做成这个样子,但是第一个项目感觉cover住难度还是不小的,特别是二面的时候肯定要对分布式系统设计这一块儿有高出正常面试者的水平才行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务