华为OD机试真题 JavaScript 实现【合法IP】【牛客练习题】

news2024/10/7 4:36:20

一、题目描述

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算法源码

function isValidIP(ip) {
    const nums = ip.split('.');
    let result = 'YES';

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

            for (const ch of element) {
                // 每段的字符必须是数字
                if (!Number.isInteger(Number(ch))) {
                    result = 'NO';
                    break;
                }
            }

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

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

    return result;
}

六、效果展示

在这里插入图片描述


🏆华为OD机试真题 Java 实现【合法IP】【牛客练习题】

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

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

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

在这里插入图片描述

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

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

相关文章

Python中函数的介绍

在Python中,函数的三个要素是:函数名参数返回值 函数名:函数名是函数的标识符,用于唯一标识函数。在定义函数时,需要给函数一个名字,以便后续调用和引用。函数名应遵循命名规则,例如以字母或下划…

HDSLB VPP 23.04 is formally released

1 摘要 近年来随着数字化技术的发展,数据中心以及边缘设备的网络带宽需求越来越高。作为部署在服务入口位置的4层负载均衡器,其性能要求也随之水涨船高。为了应对当前的市场需求,充分利用Intel的软硬件技术和优势,针对4层负载均衡…

一个奇葩的问题

大家好,这里是极客重生,最近遇到一个奇葩的网络问题,分享给大家,看完一定会觉得很奇葩。 问题现象 客户反馈有一个server端S, 两个client端C1, C2, S的iptables规则对C1, C2都是放通的,但是C2无法连接上S&a…

有奖征文 | 夙兴夜寐,铸梦网安

出品|MS08067实验室(www.ms08067.com) 本文作者:潜龙勿用 01 时光荏苒,流年岁月如白驹过隙,不停飞逝于眼前,在这车马星驰的人间,踏入网络安全领域已然三年有余。我也终于从一开始的不…

左移右移 2022年国赛 思维

思路: 简单的思维题,应该从后往前遍历操作。如果后面的对数i操作过,则前面对数i的操作都可以无视。可以通过栈这种数据结构实现后往前遍历。 AC代码: import java.io.*; import java.util.*; public class Main{public static …

Linux常用命令——groupdel命令

在线Linux命令查询工具 groupdel 用于删除指定的工作组 补充说明 groupdel命令用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。 语法 gro…

LC3-仿真器的安装

LC3-仿真器安装 参考:Download and Install LC-3 | CS 131 - Computer Organization (comp-org-etext.netlify.app) 如觉得本文写的不够详细,可参考如上网址。 介绍 小型计算机LC-3 汇编环境是一种模拟指令架构(ISA),…

wpf 3d复习1

之前研究过一段wpf 3d显示机械臂的代码;复习一下看一下; 它的摄像机位置是,0.491531,0.298732,0.321531; 我想把看到物体变小;就是摄像机移远;把摄像机坐标都乘以3,变为 , …

chatgpt赋能python:Python平均值函数简介

Python平均值函数简介 Python是一种广泛使用的编程语言,因为它易于学习,语法简单,可以完成广泛的任务和应用程序开发。 在Python编程中,平均值函数是最基本、最常用的函数之一。平均值可以用来表示一组数据集的中心趋势指标。让…

微软为 VS Code 带来 C# 开发套件

微软于今天在 Marketplace 上架了一款适用于 Visual Studio Code 的官方 C# 开发套件 —— C# Dev Kit,通过更好地管理、测试,以及提供全新的 AI 功能,为 Linux、macOS 和 Windows 平台的开发者带来了更好的 C# 开发体验。 根据微软官方提供的…

关于语言模型私有化部署的讨论 | AIGC实践

上周在与TC同行关于AIGC实践的线上交流中,大家普遍比较关心的一个实践切入点是:语言模型的私有化部署——简单来说,就是在企业内部,部署一个属于自己的“ChatGPT”,对于本行业/专业知识,以及企业独有的产品…

【学习日记2023.6.7】之 MyBatisPlus入门

文章目录 MybatisPlus1. 入门案例1.1 SpringBoot整合MyBatisPlus入门程序 2. MyBatisPlus概述2.1 MyBatis介绍2.2 MyBatisPlus特性 3. MyBatisPlus的CRUD操作4. MyBatisPlus分页功能5. 开启MyBatisPlus日志5.1 解决日志打印过多问题5.1.1 取消初始化spring日志打印5.1.2 取消Sp…

基于SpringBoot+Vue的学生考勤管理系统设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

【Web服务器】基于Nginx搭建LNMP架构

文章目录 一、安装 MySQL 数据库1. 安装Mysql环境依赖包2. 创建运行用户3. 编译安装4. 修改mysql 配置文件5. 更改mysql安装目录和配置文件的属主属组6. 设置路径环境变量7. 初始化数据库8. 添加mysqld系统服务9. 修改mysql 的登录密码10. 授权远程登录 二、编译安装 nginx 服务…

2024」预备研究生mem-论据和结论为简单句(下)

一、论据和结论为简单句-建立联系 二、结论包含完成推理 改版: 三、课后题

盘点一个Python网络爬虫问题

点击上方“Python爬虫与数据挖掘”,进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 在天愿作比翼鸟,在地愿为连理枝。 大家好,我是皮皮。 一、前言 前几天在Python最强王者群【刘桓鸣】问了一个Python网络爬虫的问…

8自由度并联腿机器狗实现行走功能

1. 功能说明 本文示例将实现R309a样机8自由度并联腿机器狗行走的功能。 2. 并联仿生机器人结构设计 机器狗是一种典型的并联仿生四足机器人,其腿部结构主要模仿了四足哺乳动物的腿部结构,主要由腿部的节段和旋转关节组成。在设计机器狗的腿部结构时&…

实用教学Prompt 提示词实战:如何用 ChatGPT 指导高考语文作文写作

又是一年高考季,牵动着广大学生和家长的心。7 日上午,语文科目考试结束。 今年高考语文共7套试卷:全国甲卷、全国乙卷、新课标Ⅰ卷、新课标Ⅱ卷、北京卷、天津卷、上海卷。 以高考语文作文题目来实践检验一下,如何用合适的提问词&…

chatgpt赋能python:Python将首字母变成大写——提升SEO排名的一种简单方法

Python将首字母变成大写——提升SEO排名的一种简单方法 在SEO行业中,优化关键字密度和网站结构是常规且必要的工作。但是,除此之外,我们也应该注意到一些看似微不足道但可能对网站排名产生影响的细节。比如,对于文章标题和正文的…