LeetCode-165-比较版本号

题目

在这里插入图片描述

代码

做到这种有病的题算我倒霉…

    public static int compareVersion(String version1, String version2) {    	
    	String[] v1 = version1.split("\\.");
    	String[] v2 = version2.split("\\.");
    	for(int i=0;i<Math.min(v1.length, v2.length);i++) {
    		if(v1[i].equals(v2[i])) continue;
    		//如果有0 且0为前导 则删除
    		if(v1[i].charAt(0)=='0' && v1[i].length()!=1) {
    			int j=0;
    			while(j!=v1[i].length() &&v1[i].charAt(j)=='0') j++;
    			if(j==v1[i].length()) v1[i]="0";
    			else v1[i] = v1[i].substring(j);
    		}
    		if(v2[i].charAt(0)=='0' && v2[i].length()!=1) {
    			int j=0;
    			while(j!=v2[i].length() &&v2[i].charAt(j)=='0') j++;
    			if(j==v2[i].length()) v2[i]="0";
    			else v2[i] = v2[i].substring(j);
    		}
    		if(v1[i].equals(v2[i])) continue;
    		if(Integer.valueOf(v1[i])<Integer.valueOf(v2[i])) return -1;
    		else return 1;

    	}
    	//如果走到这里 有的串后面还有长度 且这些长度存在0之外的数字 则是这个串版本号高
    	String[] v;
    	if(v1.length!=v2.length) {
        	if(v1.length>v2.length) v=v1;
        	else v=v2;
        	for(int i=Math.min(v1.length, v2.length);i<Math.max(v1.length, v2.length);i++) {
        		if(Integer.valueOf(v[i])!=0) {
        			if(v==v1) return 1;
        			else return -1;
        		}
        	}
    	}
    	return 0;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值