165. Compare Version Numbers
难度不高,主要学习Java字符串的处理。
- 根据 ‘.’ 进行字符串分割 (主要转义)
. | \
- 将字符串变为整数
Integer.parseInt()
(由于需要频繁的根据索引取数,采用ArrayList存储) - 从头开始进行比较
class Solution {
public int compareVersion(String version1, String version2) {
String[] v1 = version1.split("\\.");
String[] v2 = version2.split("\\.");
ArrayList<Integer> list1 = new ArrayList<Integer>();
ArrayList<Integer> list2 = new ArrayList<Integer>();
for(int i=0; i<v1.length; i++){
list1.add(Integer.parseInt(v1[i]));
}
for(int i=0; i<v2.length; i++){
list2.add(Integer.parseInt(v2[i]));
}
int listSize = Math.min(v1.length, v2.length);
int maxSize = Math.max(v1.length, v2.length);
for(int i=0; i<listSize; i++){
if(list1.get(i) > list2.get(i)){
return 1;
}else if(list1.get(i) < list2.get(i)){
return -1;
}
}
for(int i=listSize; i<maxSize; i++){
if(v1.length > v2.length){
if(list1.get(i) != 0){
return 1;
}
}else{
if(list2.get(i) != 0){
return -1;
}
}
}
return 0;
}
}