LeetCode 10.6 Restore IP Addresses
来源:互联网 发布:vcr制作软件破解 编辑:程序博客网 时间:2024/06/14 20:11
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)
import java.util.Stack;
public class T2 {
public static void main(String[] args) {
T2 t = new T2(4, "25525511135");
t.DFS(0);
t.print();
}
T2(int _n, String st) {
n = _n;
str = st;
f = new int[n];
}
String str;
int n;
Stack<int[]> ans = new Stack<>();
int[] f;
void DFS(int k) {
if (k == n) {
if (chack(n)) {
if(f[k-1]==str.length()){
int[] ss = new int[n];
for (int i = 0; i < n; i++) {
ss[i] = f[i];
}
ans.push(ss);
}
}
} else {
for (int i = k == 0 ? 1 : f[k - 1] + 1; i <= str.length(); i++) {
f[k] = i;
if (chack(k))
DFS(k + 1);
}
}
}
boolean chack(int l) {
int start = 0;
for (int i = 0; i < l; i++) {
String s = str.substring(start, f[i]);
if (s.isEmpty())
return false;
if (f[i] - start > 3)
return false;
if (Integer.parseInt(s) > 255 || Integer.parseInt(s) < 1)
return false;
start = f[i];
}
return true;
}
void print() {
int num = 1;
while (!ans.isEmpty()) {
System.out.println("======" + num + "=====");
int[] a = ans.pop();
int start = 0;
for (int i = 0; i < a.length - 1; i++) {
String s = str.substring(start, a[i]);
System.out.print(s + ".");
start = a[i];
}
String s = str.substring(start, a[a.length - 1]);
System.out.println(s);
num++;
}
}
}
- LeetCode 10.6 Restore IP Addresses
- LeetCode: Restore IP Addresses
- LeetCode : Restore IP Addresses
- [LeetCode] Restore IP Addresses
- [LeetCode]Restore IP Addresses
- LeetCode:Restore IP Addresses
- LeetCode Restore IP Addresses
- [leetcode] Restore IP Addresses
- LeetCode:Restore IP Addresses
- [LeetCode] Restore IP Addresses
- LeetCode - Restore IP Addresses
- LeetCode | Restore IP Addresses
- 【leetcode】Restore IP Addresses
- Leetcode: Restore IP Addresses
- leetcode Restore IP Addresses
- leetcode Restore IP Addresses
- [LeetCode] Restore IP Addresses
- Leetcode: Restore IP Addresses
- JAVAWEB实现数据库备份功能
- Android 屏幕适配
- ArrayList
- DAY6:leetcode #13 Roman to Integer
- android 自定义view
- LeetCode 10.6 Restore IP Addresses
- 2016年4月20
- Rxjava
- word2007怎么转换成pdf格式
- ceilometer + gnocchi + aodh集成(005) ---- gnocchi集成influxdb
- Linux 回收用户空间资源
- 【poj】-1611-The Suspects(找到需要的根,再找所有根为此的树枝)
- 第89讲:Spark Streaming on Kafka解析和安装实战
- CRichEditCtrl使用大全