华为OD机考题(HJ90 合法IP)

前言

经过前期的数据结构和算法学习,开始以OD机考题作为练习题,继续加强下熟练程度。

描述

IPV4地址可以用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此正号不需要出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。

现在需要你用程序来判断IP是否合法。

数据范围:数据组数:1≤𝑡≤18 1≤t≤18

进阶:时间复杂度:𝑂(𝑛) O(n) ,空间复杂度:𝑂(𝑛) O(n)

输入描述:

输入一个ip地址,保证不包含空格

输出描述:

返回判断的结果YES or NO

示例1

输入:

255.255.255.1000

输出:

NO

实现原理与步骤

按IP的相关特征规则检测即可,前提是熟悉IP地址的格式。

实现代码

java 复制代码
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        String ipString = in.nextLine();
        String[] ipNum = ipString.split("\\.");
        if (ipNum.length != 4) {
            System.out.println("NO");
            return;
        }
        boolean flag = true;
        for (String ip : ipNum) {
            if (!ip.matches("\\d+")) {
                System.out.println("NO");
                return;
            }
            if (ip.startsWith("0") && Integer.valueOf(ip) > 0) {
                System.out.println("NO");
                return;
            }
            if (Integer.valueOf(ip) >= 0 && Integer.valueOf(ip) <= 255) {
                continue;
            } else {
                flag = false;
                break;
            }
        }
        System.out.println(flag ? "YES" : "NO");
    }
}

1.QA:

相关推荐
夜思红尘3 小时前
算法--双指针
python·算法·剪枝
散峰而望4 小时前
【算法竞赛】C++函数详解:从定义、调用到高级用法
c语言·开发语言·数据结构·c++·算法·github
CoderCodingNo4 小时前
【GESP】C++五级真题(贪心思想考点) luogu-B4071 [GESP202412 五级] 武器强化
开发语言·c++·算法
我有一些感想……4 小时前
An abstract way to solve Luogu P1001
c++·算法·ai·洛谷·mlp
前端小L4 小时前
双指针专题(三):去重的艺术——「三数之和」
javascript·算法·双指针与滑动窗口
在风中的意志4 小时前
[数据库SQL] [leetcode] 2388. 将表中的空值更改为前一个值
数据库·sql·leetcode
智者知已应修善业5 小时前
【求等差数列个数/无序获取最大最小次大次小】2024-3-8
c语言·c++·经验分享·笔记·算法
还不秃顶的计科生5 小时前
LeetCode 热题 100第二题:字母易位词分组python版本
linux·python·leetcode
LYFlied5 小时前
【每日算法】LeetCode 416. 分割等和子集(动态规划)
数据结构·算法·leetcode·职场和发展·动态规划
多米Domi0116 小时前
0x3f 第19天 javase黑马81-87 ,三更1-23 hot100子串
python·算法·leetcode·散列表