Julia's BLOG

LeetCode-93 复原IP地址

2019-02-13

1. 题面

给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。

示例:

1
2
输入: "25525511135"
输出: ["255.255.11.135", "255.255.111.35"]

2. 解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Solution {
public List<String> restoreIpAddresses(String s) {
List<String> list = new ArrayList<String>();
for(int i = 0;i<s.length()-2 && i<4;i++) {
for(int j = i+1;j<s.length()-1 && j<4+i;j++) {
for(int k = j+1;k<s.length() && j<4+k;k++) {
String a = s.substring(0,i);
String b = s.substring(i,j);
String c = s.substring(j,k);
String d = s.substring(k,s.length());
if(isValid(a) && isValid(b) && isValid(c) && isValid(d)) {
System.out.println(a+"."+b+"."+c+"."+d);
list.add(a+"."+b+"."+c+"."+d);
}
}
}
}
return list;
}

public boolean isValid(String str) {
if(str.length() == 0 || (str.charAt(0) == '0'&&str.length()>1) || str.length() > 3 || Integer.parseInt(str) > 255) {
return false;
}
return true;
}
}
使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

扫描二维码,分享此文章