题解 | #判断两个IP是否属于同一子网#

判断两个IP是否属于同一子网

https://www.nowcoder.com/practice/34a597ee15eb4fa2b956f4c595f03218

import java.util.Scanner;


// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        while (in.hasNextLine()) {
            String mask = in.nextLine();
            String ip1 = in.nextLine();
            String ip2 = in.nextLine();
            String[] maskStr = mask.split("\\.");
            String[] ip1Str = ip1.split("\\.");
            String[] ip2Str = ip2.split("\\.");
            int[] maskCode = new int[maskStr.length];
            int[] ip1Code = new int[ip1Str.length];
            int[] ip2Code = new int[ip2Str.length];
            int flag = 0;
            String eightBinary="";
            for (int i = 0; i < 4; i++) {
                if (maskStr[i].isEmpty() || ip1Str[i].isEmpty() || ip2Str[i].isEmpty()) {
                    flag = 1;
                    break;

                } else {
                    maskCode[i] = Integer.parseInt(maskStr[i]);
                    ip1Code[i] = Integer.parseInt(ip1Str[i]);
                    ip2Code[i] = Integer.parseInt(ip2Str[i]);
                    if(maskCode[i]>255||ip1Code[i]>255||ip2Code[i]>255||maskCode[i]<0||ip1Code[i]<0||ip2Code[i]<0){
                        flag=1;
                        break;
                    }else if((maskCode[i]&ip1Code[i])!=(maskCode[i]&ip2Code[i])){
                        flag=2;
                        
                    }
                    String maskBinary=Integer.toBinaryString(maskCode[i]);
                    while(maskBinary.length()<8){
                        maskBinary="0"+maskBinary;
                    }
                    eightBinary=eightBinary+maskBinary;

                }


            }
            if(!eightBinary.matches("[1]+[0]+")){
                flag=1;
            }
            System.out.println(flag);
        }
    }
}

全部评论

相关推荐

10-13 16:58
门头沟学院 Java
点赞 评论 收藏
分享
浩浩没烦恼:一二面加起来才一个小时? 我一面就一个小时多了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务