题目
题解
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;
}
标签:10,String,22,版本号,int,--,必刷,比较,数字
From: https://blog.51cto.com/u_16244372/8231288