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

news/2024/11/8 14:36:42/

一、题目描述

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.ppmy.cn/news/273809.html

相关文章

亲身体验,不要再拖! 拖! 拖!

亲身体验,不要再拖! 拖! 拖! 拖延症其实是自我管理的一种放松,意志力极强或者非常自律的人是很少有拖延症的。我一直在思考对于像自己这样意志力薄弱的人,该如何摆脱拖延的坏习惯呢?方法总是有的,效果也总是有的。 >…

32bitwin7硬盘安装win8-64bit

32bitwin7硬盘安装win8-64bit 1、硬件支持64bit是最基本的,可以用cpu-z查看。 2、下载win7-32bit和win8-64bit,虚拟或提取到非c盘下,如果格式化c盘装win8-64bit,建议提取的好。 3、在cmd下用32位里的setup加一个installfrom参数,指…

SpringBoot整合JPA并简单使用示例

干了这碗毒鸡汤~ 相关知识说明: JPA(Java Persistence API):JPA用于描述对象——关系表的映射关系,并将运行期的实体对象持久化到数据库中。同时也提供有多达十八种增删改查操作数据库表的方法。JPA既可以JPA可以进行单表的增删改查操作&…

完美电脑主机一拖二,让你夫妻不再抢电脑,一台主机两人独立玩

近来闲着无事,突然想把家里的两台主机省出来一台,俩人玩一台主机,那电费得省多少啊,于是乎就开始找各种软件进行测试,最后选定了ASTER使用。 下面是本人的主机配置,以及需要的东西。 首先需要的是你的显卡有…

mysql查询bween_Mysql查询语句

一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,,,!,!>,!,< 二查询字符串 SELECT * FROM tb_stu WHERE sname 小刘 SELECT * FROM tb_stu WHERE sname like 刘% SELECT * FROM tb_stu WHERE sname like %程序员 SELECT * FROM tb_stu WHER…

解决Betwin客户机经常无法正常登录带来的困扰

BeTwin是一套基于Windows系统环境下的软件,它可让多个用户同时、独立地共享一台PC机的软硬件及外部资源.....&#xff08;在这里不废话了&#xff0c;这些内容还是让读者自己去Google吧 :P&#xff09; 本文的主题是如何解决使用Betwin过程中主机正常启动&#xff0c;客…

JDK8-1-Lambda表达式(2)-方法传递(行为参数化)

JDK8-1-Lambda表达式&#xff08;2&#xff09;-方法传递&#xff08;行为参数化&#xff09; Java 8 允许程序将方法作为参数传递&#xff0c;先看一个例子&#xff1a; 苹果实体类&#xff1a; public class Apple {//颜色private String color;//重量&#xff0c;单位克&…

开放网关架构演进

淘宝开放平台是阿里与外部生态互联互通的重要开放途径&#xff0c;通过开放的产品技术把阿里经济体一系列基础服务&#xff0c;像水、电、煤一样输送给我们的商家、开发者、社区媒体以及其他合作伙伴&#xff0c;推动行业的定制、创新、进化, 并最终促成新商业文明生态圈。 开放…