Compare Version Numbers
分析思路:
这里运用的是分段比较大小,巧妙运用java String类的库 split,将.号隔开。
再进行逐一比较。
源代码:
public class Solution {
public int compareVersion(String version1, String version2) {
String[] a1 = version1.split("\\.");
String[] a2 = version2.split("\\.");
int max = Math.max(a1.length, a2.length);
int[] b1 = new int[max];
int[] b2 = new int[max];
for(int i=0;i<a1.length;i++){
b1[i] = Integer.parseInt(a1[i]);
}
for(int i=0;i<a2.length;i++){
b2[i] = Integer.parseInt(a2[i]);
}
for(int i=0;i<max;i++){
if(b1[i] > b2[i]){
return 1;
}else if(b1[i] < b2[i]){
return -1;
}
}
return 0;
}
}
收获:
由于两串字符串并不是一样长度的,如果分情况比较,如第一个长,遍历逐一比较则要分情况讨论。此时就采取一些小技巧,将两个字符串对其,就无需考虑各种情况,超出的位数补0即可,这是一种字符串、数串比较的小技巧。