面试必刷TOP101:22、比较版本号
  9ShvDtAiXXil 2023年11月08日 36 0

题目

面试必刷TOP101:22、比较版本号_字符串

题解

public int compare (String version1, String version2) {
        // 用双指针遍历两个字符串
        //截取.之前的数字,  
        //比较数字大小,返回1、-1;如果全部比较完都没有结果,返回0
        //关键在于处理前导0:加在前面数字乘10的后面   010-->10   00010-->10
        int i=0;
        int j=0;
        while(i<version1.length()||j<version2.length()){
            long num1=0;
            long num2=0;
            //处理version1
            while(i<version1.length()&&version1.charAt(i)!='.'){//按.截取数字
                int tmp1=version1.charAt(i)-'0';
                num1=num1*10+tmp1;
                i++;
            }
            i++;//跳过.

            //处理version2
            while(j<version2.length()&&version2.charAt(j)!='.'){
                int tmp2=version2.charAt(j)-'0';
                num2=num2*10+tmp2;
                j++;
            }
            j++;//跳过.
            //比较数字
            if(num1>num2) return 1;
            if(num1<num2) return -1;
        }
        return 0;
    }
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  anLrwkgbyYZS   2023年12月30日   28   0   0 i++iosi++ioscici
9ShvDtAiXXil