华为OJ训练之0039-170114-合法IP
2017-05-12 15:21
197 查看
题目
现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。现在需要你用程序来判断IP是否合法。
知识点 字符串,循环,链表,队列,栈,查找,搜索,排序,树,图,数组,函数,指针,枚举,位运算,结构体,联合体,文件操作,递归
运行时间限制 10M
内存限制 128
输入
输入一个ip地址
输出
返回判断的结果YES or NO
样例输入 10.138.15.1
样例输出 YES
====================================================
一次通过 100分
===================================================
package package02; import java.util.Scanner; //现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。 //现在需要你用程序来判断IP是否合法。 // //知识点 字符串,循环,链表,队列,栈,查找,搜索,排序,树,图,数组,函数,指针,枚举,位运算,结构体,联合体,文件操作,递归 //运行时间限制 10M //内存限制 128 //输入 //输入一个ip地址 //输出 //返回判断的结果YES or NO // //样例输入 10.138.15.1 //样例输出 YES public class oj039 { public String isRightIp(String ip4) { String[] ips=ip4.split("\\."); if(ips.length<4){return "NO";} int i1=Integer.valueOf(ips[0]); int i2=Integer.valueOf(ips[1]); int i3=Integer.valueOf(ips[2]); int i4=Integer.valueOf(ips[3]); if(i1<0||i1>255){return "NO";} if(i2<0||i2>255){return "NO";} if(i3<0||i3>255){return "NO";} if(i4<0||i4>255){return "NO";} return "YES"; } public static void main(String[] args) { Scanner scanner=new Scanner(System.in); String ip4=scanner.nextLine(); System.out.print(new oj039().isRightIp(ip4)); } }