Restore IP Addresses
2015-08-03 14:42
337 查看
Given a string containing only digits, restore it by returning all possible valid IP
address combinations.
For example:
Given "25525511135",
return ["255.255.11.135", "255.255.111.35"]. (Order does not matter)
使用dfs搜索来解决。
address combinations.
For example:
Given "25525511135",
return ["255.255.11.135", "255.255.111.35"]. (Order does not matter)
使用dfs搜索来解决。
public class Solution { public ArrayList<String> restoreIpAddresses(String s) { ArrayList<String> result = new ArrayList<String>(); ArrayList<String> list = new ArrayList<String>(); if(s.length() <4 || s.length() > 12) return result; helper(result, list, s , 0); return result; } public void helper(ArrayList<String> result, ArrayList<String> list, String s, int start){ if(list.size() == 4){ if(start != s.length()) return; StringBuffer sb = new StringBuffer(); for(String tmp: list){ sb.append(tmp); sb.append("."); } sb.deleteCharAt(sb.length()-1); result.add(sb.toString()); return; } for(int i=start; i<s.length() && i<= start+3; i++){ String tmp = s.substring(start, i+1); if(isvalid(tmp)){ list.add(tmp); helper(result, list, s, i+1); list.remove(list.size()-1); } } } private boolean isvalid(String s){ if(s.charAt(0) == '0') return s.equals("0"); // to eliminate cases like "00", "10" int digit = Integer.valueOf(s); return digit >= 0 && digit <= 255; } }
相关文章推荐
- Visual Studio 遇到了异常。这个可能是由某个扩展导致的
- Vehicle Spy替换硬件设备
- Atom飞行手册翻译: 3.1 ~ 3.2
- 运用JS设置cookie、读取cookie、删除cookie
- Java注解解析(三)——解析自定义注解
- javaEE项目中常用的包含上下文路径的代码
- IOS 开发xcode 6.3以后 自制FrameWork教程
- http://blog.csdn.net/a9529lty/article/details/6454145
- 命令执行顺序控制与管道
- POJ 3107-Godfather(树形dp)
- Coreseek的使用步骤
- Linux下对文件权限的相关操作
- Truck History Poj 1789(Prim)
- hdu/hdoj 1083 courses 题解
- HDFS的运行原理(转)
- “一步千里”之数组找数
- 操作分布式文件之四:如何进行集群内文件复制和并行复制
- HSSFWorkBooK用法【数据导出为execl】
- HSSFWorkBooK用法【数据导出为execl】
- 揭秘!刷爆朋友圈的"388元玩转云南",究竟是什么鬼?