华为OD机试真题B卷 Java 实现【合法IP】,附详细解题思路

news2025/1/11 13:00:51

一、题目描述

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

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

二、输入描述

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

三、输出描述

返回判断的结果YES or NO。

四、解题思路

  1. 输入一个IP地址,将其存储为字符串str;
  2. 使用.作为分隔符,将IP地址拆分为字符串数组nums;
  3. 初始化结果result为"YES";
  4. 判断拆分后的nums数组长度是否为4,如果不为4,则IP地址不合法,将result设置为"NO";
  5. 遍历nums数组中的每个元素,判断每个元素是否合法;
  6. 对于每个元素,检查其长度是否为0或大于3,如果是,则IP地址不合法,将result设置为"NO";
  7. 对于每个元素,遍历其每个字符,检查是否为数字,如果不是,则IP地址不合法,将result设置为"NO";
  8. 对于每个元素,检查其是否以0开头且长度不为1,如果是,则IP地址不合法,将result设置为"NO";
  9. 对于每个元素,将其转换为整数并检查是否大于255,如果大于255,则IP地址不合法,将result设置为"NO";
  10. 输出result;

五、Java算法源码

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    while (sc.hasNext()) {
        String str = sc.next();
        String[] nums = str.split("\\.", -1);
        String result = "YES";

        if (nums.length == 4) {
            for (String element : nums) { //遍历每个元素,合不合法
                if (element.length() == 0 || element.length() > 3) { //每段长度等于0,或者长度大于4,都不合法
                    result = "NO";
                    break;
                }

                for (Character ch : element.toCharArray()) { //每段的字符必须是数字
                    if (!Character.isDigit(ch)) {
                        result = "NO";
                        break;
                    }
                }

                if (element.charAt(0) == '0' && element.length() != 1) { //除0以外,所有0开头的字符串都是非法的
                    result = "NO";
                    break;
                }

                if (Integer.parseInt(element) > 255) { //每段对应的数大于255,也是非法的
                    result = "NO";
                    break;
                }
            }
        } else {
            result = "NO";
        }
        System.out.println(result);
    }
}

六、效果展示

在这里插入图片描述


🏆下一篇:华为OD机试真题 Java 实现【基站维修工程师】【2023Q1 200分】,附详细解题思路

🏆本文收录于,华为OD机试(JAVA)(2022&2023)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/596066.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在中文LLaMA模型上进行精调

最近在开源项目ymcui/Chinese-LLaMA-Alpaca的基础上完成了自己的中文模型精调工作,形成了两个工具共享给大家。ymcui/Chinese-LLaMA-Alpaca 构建指令形式的精调文件 如果用于精调,首先要准备精调数据,目标用途如果是问答,需要按…

【下篇】我们邀请了4位专家来探讨消费市场的新增量:W型机会、单客经济、日本市场、DTC......

在4月底的时候,我们举办了一场线上直播活动,有幸邀请到了4位消费零售行业的专家,我本人与他们一起探讨如何寻找市场的新增量,思考品牌如何找到新机会。本篇内容就是将专家们的观点进行了梳理和总结。 接上篇内容: 本篇…

【六·一】就做个纯粹的小小游戏吧

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成…

Java学习(maven)——maven新建项目 常用IO工具 Durid数据库工具 案例

引出 如何用maven新建项目,用maven建项目的优势,常用的io工具和durid工具 用Maven建项目 0.Maven配置方式 参考博客 : 【配置】Maven的配置 & Tomcat的配置 & 在IDEA中新建web项目 中的maven配置 1.io流的工具IOUtils/FileUtils…

ROS:一些基本命令行

目录 一、打开小海龟1.1终端,启动ROS Master:1.2终端2,启动小海龟仿真器:1.3终端3,启动海龟控制节点: 二、查看系统中的计算图三、节点命令3.1查看节点下的命令rosnode3.2显示节点列表rosnode list3.3查看节…

【致敬未来的攻城狮计划】打卡1:rasc+keil环境搭建

前言 这回参加的是csdn李肯老师的攻城狮计划,简单说就是我白嫖板子,输出学习笔记。 板子是瑞萨的CPK_RA2E1,还有触摸元件,看起来很有意思hh。 环境搭建 一开始决定采取vscode搭建的方式。后期进行到最后一步——cmake build的时…

多链路传输技术在火山引擎 RTC 的探索和实践

动手点关注 干货不迷路 传统的数据传输方式大多是利用一个链路、选择设备的默认网卡进行传输,使用这种方式实现实时音视频通话时,如果默认网络出现问题(如断网、弱网等),用户的通信就会发生中断或者卡顿,影…

chatgpt赋能python:Python倒序函数:让你的列表逆转!

Python倒序函数:让你的列表逆转! Python作为一种高级编程语言,代码简洁易学,因此被广泛使用。对于开发者而言,逆转列表(list)是很常见的需求。Python提供了一个内置函数reverse()来解决这个问题…

前端技术搭建扫雷小游戏(内含源码)

The sand accumulates to form a pagoda ✨ 写在前面✨ 功能介绍✨ 页面搭建✨ 样式设置✨ 逻辑部分 ✨ 写在前面 上周我们实通过前端基础实现了贪吃蛇游戏,今天还是继续按照我们原定的节奏来带领大家完成一个游戏,功能也比较简单简单,也是想…

钉钉斜杠“/”开启邀请测试;用ChatGPT写一个数据采集程序

🦉 AI新闻 🚀 钉钉斜杠“/”开启邀请测试,AI全面智能化助力企业生产 摘要:钉钉斜杠“/”邀请测试开启,应用于文档、群聊、视频会议、应用开发等场景,为企业用户提供多项AI智能能力,如创作、汇…

【AUTOSAR】Com通讯栈配置说明(五)---- ComM模块

ComM模块 ComMConfigSet ComMChannels ComMBusType:定义总线类型 ComMChannelId:通道号 ComMFullCommRequestNotificationEnabled:未使用 ComMComMGlobalNvmBlockDescriptor:未使用 ComMMainFunctionPeriod:ComM的…

【云原生•监控】mtail轻量日志监控系统

【云原生•监控】mtail轻量日志监控系统 前言 「笔者已经在公有云上搭建了一套临时环境,可以先登录体验下:」 http://124.222.45.207:17000/login 账号:root/root.2020 简介 「可观测性平台三大支柱:日志监控、调用链监控和度量指…

2023年05月小结

5月一晃即将过去,先看看5月份都写了哪些文章: 往期推荐 国内手机号如何注册Google账号 Python中的布尔类型以及布尔值介绍 Python中深拷贝与浅拷贝介绍 Python中的集合介绍 Python中的字典学习笔记 Python学习历程-元组的基本操作回顾 记录我的Python学习…

初学prometheus监控(一)

初学prometheus监控(一) 1、promethues 介绍 1.1 监控的分类 监控重要性由高到低 业务监控:公司领导比较关心的指标,如电商平台的订单数量,用户的日活等系统监控:主要是跟操作系统相关的基本监控项,比如CPU,内存&#…

ChatGPT能解决信息抽取吗?一份关于性能、评估标准、鲁棒性和错误的分析

深度学习自然语言处理 原创作者:qazw 信息抽取(IE)旨在从非结构化文本中抽取出结构化信息,该结果可以直接影响很多下游子任务,比如问答和知识图谱构建。因此,探索ChatGPT的信息抽取能力在一定程度上能反映出ChatGPT生成回复时对任…

Office project 2019安装

哈喽,大家好。今天一起学习的是project 2019的安装,Microsoft Office project项目管理工具软件,凝集了许多成熟的项目管理现代理论和方法,可以帮助项目管理者实现时间、资源、成本计划、控制。有兴趣的小伙伴也可以来一起试试手。…

英伟达股票大涨,对应 GPU 产品有哪些型号?

英伟达(NVIDIA)是一家知名的 GPU(图形处理器)制造商,其 GPU 产品线非常丰富,涵盖了从消费级到专业级的各种型号。 最近英伟达股票大涨,高端 GPU 供不应求,搞大模型的团队都要疯狂进货…

机器学习入门基础:机器学习实践

目录 7.1 数据集划分 7.1.1 训练集、验证集和测试集划分7.1.2 交叉验证7.1.3 不平衡数据处理7.2 评价指标 7.2.1 回归的评价指标7.2.2 分类的评价指标7.2.3 评价指标案例7.3 正则化、偏差和方差 7.3.1 欠拟合和过拟合7.3.2 正则化7.3.3 偏差和方差参考文献 7.1 数据集划分 7.1…

通过python采集1688app商品详情数据,1688app商品详情数据接口,1688API接口

要通过Python采集1688app商品详情数据,你可以使用以下步骤: 安装必要的 Python 模块:requests, BeautifulSoup4 和 lxml。使用 requests 模块发送 HTTP 请求获取网站 HTML 内容。使用 BeautifulSoup4 模块解析 HTML 页面并提取所需的数据。编…

主路由设置静态路由后,能ping通,但无法访问网页服务和ssh等

主路由设置静态路由后,能ping通,但无法访问网页服务和ssh等 静态路由 主路由是istoreos软路由, AP使用华为AX3路由器做ap和wifi, 二级路由使用蒲公英路由X5 前置条件:已在主路由设置静态路由 静态路由 问 主路由设置静…