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

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

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

import java.util.Scanner;

// 把题干的要求读完,判1的条件有两个,都要写出来,
// 本题解使用sign符号作为后续是否进行比较的判断
// 因为掩码需要判断前后关系,所以使用数组存储
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) {
            String mask = in.nextLine();
            if (mask == null || mask == "") break;
            String ipFir = in.nextLine();
            String ipSec = in.nextLine();
            String[] maskNum = mask.split("\\.");
            String[] ipFirNum = ipFir.split("\\.");
            String[] ipSecNum = ipSec.split("\\.");
            int sign = 0;
            Long[] curNum = new Long[maskNum.length];
            Long[] curNum2 = new Long[maskNum.length];
            Long[] curNum3 = new Long[maskNum.length];
            for (int i = 0; i < maskNum.length; i++) {
                
                curNum[i] = Long.parseLong(maskNum[i]);
                
                curNum2[i] = Long.parseLong(ipFirNum[i]);
                
                curNum3[i] = Long.parseLong(ipSecNum[i]);
                if (curNum[i] > 255 || curNum[i] < 0 || curNum2[i] > 255 || curNum2[i] < 0 || curNum3[i] > 255 || curNum3[i] < 0) {
                    System.out.println(1);
                    sign = 1;
                    break;
                }

                if (i - 1 >= 0 && (curNum[i - 1] != 255 && curNum[i] != 0)) {
                    System.out.println(1);
                    sign = 1;
                    break;
                }
            }
            

            if (sign == 0) {
                for (int i = 0; i < maskNum.length; i++) {
                    
                    if ((curNum[i] & curNum2[i]) != (curNum[i] & curNum3[i])) {
                        System.out.println(2);
                        break;
                    } else if (i == maskNum.length - 1) {
                        System.out.println(0);
                    }
                }
            }

        }
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务