import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while(input.hasNext()){
String[] str1 = input.nextLine().split("\\.");//切割成字符串数组
String[] str2 = input.nextLine().split("\\.");
String[] str3 = input.nextLine().split("\\.");
String[] str4 = input.nextLine().split("\\.");
long ip1 = toLong(str1);
long ip2 = toLong(str2);
long ipp1 = Math.min(ip1, ip2);//保证起始ip < 终止ip
long ipp2 = Math.max(ip1, ip2);
long ip3 = toLong(str3);
long ip4 = toLong(str4);
long ipp3 = Math.min(ip3, ip4);
long ipp4 = Math.max(ip3, ip4);
if(ipp2<ipp3||ipp1>ipp4)//
System.out.println("NO Overlap IP");
else
System.out.println("Overlap IP");
}
input.close();
}
//将ip地址转为long型
private static long toLong(String[] str) {
long result = 0;
for(int i=0;i<4;i++){
result += Math.pow(16, i)*Integer.valueOf(str[i-3]);
}
return result;
}
}
求助各位大神,这是我当时的代码,但是最后只能通过87.5%,想了一晚上还是没想明白,恳请赐教!