一、题目:165. 比较版本号
二、题目解析:
1. 采用双指针的思想,同时遍历两个字符串,以点号作为版本号的分隔条件,逐个比较字符大小
2. 每次比较点之前的数字,如果不同直接返回结果,相同则继续遍历,直到两个字符串都遍历完
三、代码如下:
public int compareVersion(String version1, String version2) {
int n1 = version1.length();
int n2 = version2.length();
int p1 = 0;
int p2 = 0;
while(p1<n1 || p2<n2){
int num1 = 0;
int num2 = 0;
while(p1<n1 && version1.charAt(p1)!='.'){
num1 = num1 * 10 + (version1.charAt(p1)-'0');
p1++;
}
//跳过点号
p1++;
while(p2<n2 && version2.charAt(p2)!='.'){
num2 = num2 * 10 + (version2.charAt(p2)-'0');
p2++;
}
//跳过点号
p2++;
if(num1!=num2){
return num1>num2? 1:-1;
}
}
return 0;
}
四、测试
五、结束