Restore IP Addresses
来源:互联网 发布:ubuntu 网桥配置 编辑:程序博客网 时间:2024/06/09 08:06
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)
典型的回溯法的使用 IP的每一位可以是 1,2,3位 一共由4组组成 每组的大小为0-255 要注意的是数字组成的合法性 001,01这样的是不合法的 要去除掉 代码如下:
public class Solution { public List<String> restoreIpAddresses(String s) {List<String> res = new ArrayList<String>();ipformat(res, "", "", s, 0, 0, 1, 0);ipformat(res, "", "", s, 0, 0, 2, 0);ipformat(res, "", "", s, 0, 0, 3, 0);return res;}public void ipformat(List<String> res, String tmp, String sip,String s, int index, int count, int slen, int num) {if (index == s.length() || num == 4) {if (tmp.length() - 4 == s.length()) {String ss="";for(int i=0;i<tmp.length()-1;i++){ss+=tmp.charAt(i);}res.add(ss);}return;}if(slen>=2&&count!=0){ if(sip.charAt(0)=='0') return;}if (count == slen - 1) {int flag = 0;if (slen <= 2) {flag = 1;} else {int com = 0;for (int j = 0; j < slen - 1; j++) {com = (sip.charAt(j) - '0') + com * 10;}com = com * 10 + s.charAt(index) - '0';if (com <= 255&&com>0) {flag = 1;}}if (flag == 1) {if (index == s.length() - 1) {ipformat(res, tmp + sip + s.charAt(index) + '.', "", s,index + 1, 0, 1, num + 1);} else {ipformat(res, tmp + sip + s.charAt(index) + '.', "", s,index + 1, 0, 1, num + 1);ipformat(res, tmp + sip + s.charAt(index) + '.', "", s,index + 1, 0, 2, num + 1);ipformat(res, tmp + sip + s.charAt(index) + '.', "", s,index + 1, 0, 3, num + 1);}}} else {ipformat(res, tmp, sip + s.charAt(index), s, index + 1, count + 1,slen, num);}}}
0 0
- LeetCode: Restore IP Addresses
- Restore IP Addresses
- LeetCode : Restore IP Addresses
- [LeetCode] Restore IP Addresses
- Restore IP Addresses
- [LeetCode]Restore IP Addresses
- Restore IP Addresses
- Restore IP Addresses
- LeetCode:Restore IP Addresses
- Restore IP Addresses
- Restore IP Addresses
- LeetCode Restore IP Addresses
- [leetcode] Restore IP Addresses
- Restore IP Addresses
- LeetCode:Restore IP Addresses
- [LeetCode] Restore IP Addresses
- LeetCode - Restore IP Addresses
- LeetCode | Restore IP Addresses
- 用于验证码图片识别的类(C#源码)
- 练习3.23
- hdoj1004
- codeforce499B - Lecture
- 日经春秋 20141224
- Restore IP Addresses
- Windows下搭建基于ssh的git服务器
- 练习3.35
- codeforce499C - Crazy Town
- 数字电路设计之简单的滤波算法
- 24SharedPreferences的工具类的编写
- TortoiseSVN 疑似bug(版本库读取权限缩小后,TTSVN不会删除无权限的副本)
- 练习3.43
- Kinect For Windows2.0开发第一篇之搭建环境