HJ90 合法IP | 题解
将地址分为多个块,然后逐块进行验证。仅当每个块都有效时,该地址才有效。这种方法称为 分治法。
通过界定符将地址分为四块,对于地址的每一块,检查它们是否在 0 - 255 内,且没有前置零。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { String[] nums = in.next().split("\\.", -1); String res = "YES"; if (nums.length == 4) { for (String num : nums) { if (num.length() == 0 || num.length() > 3) { res = "NO"; break; } if (num.charAt(0) == '0' && num.length() != 1) { res = "NO"; break; } for (char ch : num.toCharArray()) { if (!Character.isDigit(ch)) { res = "NO"; break; } } if (Integer.parseInt(num) > 255) { res = "NO"; break; } } } else res = "NO"; System.out.println(res); } } }