Restore IP Addresses---medium
来源:互联网 发布:影视制作软件下载 编辑:程序博客网 时间:2024/06/08 16:18
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)迭代,三层循环嵌套,每层取出1-3位的子字串,在第三层中将符合条件的字串加入数组
2)递归,利用深度优先搜索,逐步取出1-3个子字串并递归剩余的字串
迭代方法
package soc;//Restore IP Addressesimport java.io.*;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class RIA {public static List<String> restoreIpAddresses(String s) {List<String> iplist = new ArrayList<String>();if(s.length()<4)return iplist; //排除过短字串String ip,ip1,ip2,ip3,ip4;//使用先取后拼合成地址的原则for(int i=1;i<4;i++){ip1 = s.substring(0, i);if(!isvalid(ip1))break;for(int j=1;(j<4&&j<s.length()-i);j++){ //循环的判断条件中加入j<s.length()-i,防止截取子字串时越界ip2 = s.substring(i,i+j);if(!isvalid(ip2))break;for(int k=1;(k<4&&k<s.length()-i-j);k++){ip3 = s.substring(i+j,i+j+k);ip4 = s.substring(i+j+k,s.length());if((!isvalid(ip3)) || (!isvalid(ip4)))continue;else {ip="";ip+=(ip1+"."+ip2+"."+ip3+"."+ip4);}iplist.add(ip);}}}return iplist; }public static boolean isvalid(String s){if(s.length()>3)return false;if(s.length()>1 && s.startsWith("0")) return false;if(Integer.parseInt(s)<256) return true;else return false;}public static void main(String[] args) throws IOException{BufferedReader read = new BufferedReader(new InputStreamReader(System.in));String ip = read.readLine();List<String> iplist = restoreIpAddresses(ip);Iterator<String> ite = iplist.iterator();for(;ite.hasNext();){System.out.println(ite.next());}}}
0 0
- Restore IP Addresses---medium
- 93. Restore IP Addresses -Medium
- [Leetcode 93, Medium] Restore IP Addresses
- Leetcode 93. Restore IP Addresses (Medium) (cpp)
- Leetcode:93. Restore IP Addresses(Week1, Medium)
- 93.leetcode Restore IP Addresses(medium)[回溯 DFS]
- 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
- 电阻屏驱动设计---ok6410
- RUtils -- 建立在Rserve之上的Java与R语言通信工具集
- 关于php的unset
- Windows虚拟内存的使用(一)
- 3d plane
- Restore IP Addresses---medium
- 事件是在线程同步中最常用的一种同步对象,可手动自动状态。
- 开篇
- BLE协议栈之读取CC2541的MAC地址
- nyoj-664-数字整除
- Kruskal算法
- Eclipse 中 An error has occurred 错误
- Fraction to Recurring Decimal
- 通俗易懂的相对定位与绝对定位