博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【阿里笔试2】给定一组只包含数字的字符串,请恢复到有效的非私有网段地址组合...
阅读量:4658 次
发布时间:2019-06-09

本文共 2341 字,大约阅读时间需要 7 分钟。

1 package test2; 2  3 import java.util.ArrayList; 4  5 public class IPTest {   6     public static ArrayList
restoreIpAddresses(String s) { 7 ArrayList
res = new ArrayList
(); 8 if (s == null || s.length() < 4 || s.length() > 12) { 9 return res; 10 } 11 12 StringBuilder tmp = new StringBuilder(); 13 14 depthFS(0, 0, s, tmp, res); 15 16 return res; 17 } 18 19 public static void depthFS(int count, int index, String s, StringBuilder tmp, 20 ArrayList
res) { 21 if (count == 4 && index == s.length()) { 22 res.add(tmp.toString().substring(0, tmp.length() - 1)); 23 return; 24 } else { 25 for (int i = 1; i <= 3 && index + i <= s.length(); i++) { 26 String tmpStr = s.substring(index, index + i); 27 if (isValid(tmpStr)) { 28 int bt = tmp.length(); 29 int ed = tmp.length() + tmpStr.length(); 30 tmp.append(tmpStr).append("."); 31 depthFS(count + 1, index + i, s, tmp, res); 32 tmp.delete(bt, ed + 1); 33 } 34 } 35 } 36 } 37 38 public static boolean isValid(String s) { 39 if (s.charAt(0) == '0') { 40 return s.equals("0"); 41 } 42 43 int num = Integer.parseInt(s); 44 45 return num > 0 && num <= 255; 46 } 47 48 49 public static void main(String[] args) {50 System.out.println(restoreIpAddresses("23343"));51 }52 }

 

。私有IP地址范围:  

A类:10.0.0.0-10.255.255.255  

B类:172.16.0.0-172.31.255.255  

C类:192.168.0.0-192.168.255.255

编译器版本: Java 1.8.0_66

请使用标准输入输出(System.in, System.out);已禁用图形、文件、网络、系统相关的操作,如java.lang.Process , javax.swing.JFrame , Runtime.getRuntime;不要自定义包名称,否则会报错,即不要添加package answer之类的语句;您可以写很多个类,但是必须有一个类名为Main,并且为public属性,并且Main为唯一的public class,Main类的里面必须包含一个名字为'main'的静态方法(函数),这个方法是程序的入口

时间限制: 555S (C/C++以外的语言为: 557 S)   内存限制: 444M (C/C++以外的语言为: 956 M)

输入:

输入数据就是一行,仅仅包括数字的字符串

输出:

有效的ip地址字符串数组,如果没有解析到有效的ip字符串则输出空的字符串数组

输入范例:

1022111838

输出范例:

比如:102.21.118.38

102.211.18.38

转载于:https://www.cnblogs.com/noaman/p/6515167.html

你可能感兴趣的文章
Java Security(JCE基本概念)
查看>>
创建 PSO
查看>>
JasperReport报表设计4
查看>>
项目活动定义 概述
查看>>
团队冲刺04
查看>>
我的Python分析成长之路8
查看>>
泛型在三层中的应用
查看>>
SharePoint2010 -- 管理配置文件同步
查看>>
.Net MVC3中取得当前区域的名字(Area name)
查看>>
获得屏幕像素以及像素密度
查看>>
int与string转换
查看>>
adb命令 判断锁屏
查看>>
推荐一个MacOS苹果电脑系统解压缩软件
查看>>
1035等差数列末项计算
查看>>
CDMA鉴权
查看>>
ASP.NET MVC Identity 兩個多個連接字符串問題解決一例
查看>>
过滤器与拦截器区别
查看>>
第二阶段站立会议7
查看>>
JAVA多线程
查看>>
delphi 更改DBGrid 颜色技巧
查看>>