一面 1、中mysql数据库和表设计
笔试题
比较两个版本大小
用例1:
"8.7.0.8";
"8.7.10.0";
第二个版本大
用例2:
"8.7.10";
"8.7.10.0";
相等
用例3:
"8.7.11";
"8.7.10.0";
第一个版本大
public static void main(String[] args) {
String v1 = "8.7.0.8";
String v2 = "8.7.10.0";
System.out.println(versionCompare(v1,v2));
}
public static int versionCompare(String v1,String v2){
//版本号比较,v1 大于 v2:返回正数,v1 等于 v2:返回0,v1 小于v2 ,返回负数
//note:字符串按照“.”切割,要记得特殊字符转译“\\.”
List<Integer> v1IntList = Arrays.stream(v1.split("\\.")).map(Integer::valueOf).collect(Collectors.toList());
List<Integer> v2IntList = Arrays.stream(v2.split("\\.")).map(Integer::valueOf).collect(Collectors.toList());
int i = 0;
while(i < v1IntList.size() && i < v2IntList.size()){
int temp1 = v1IntList.get(i);
int temp2 = v2IntList.get(i);
if(temp1 > temp2){
return 1;
}else if(temp1 < temp2){
return -1;
}else{
i++;
}
}
while(i < v1IntList.size()){
int temp = v1IntList.get(i);
if(temp!=0){
return 1;
}
}
while(i < v2IntList.size()){
int temp = v2IntList.get(i);
if(temp!=0){
return -1;
}
}
return 0;
}