93. 复原IP地址
class Solution {
List res = new ArrayList();
public List restoreIpAddresses(String s) {
List segment = new ArrayList();
//开始搜索
dfs(s, 0, segment);
return res;
}
private void dfs(String s, int start, List segment) {
if (start == s.length()) {
if (segment.size() == 4) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < segment.size(); i++) {
sb.append(segment.get(i));
if (i != segment.size() - 1) sb.append('.');
}
res.add(sb.toString());
}
return;
} else {
if (segment.size() >= 4) return;
for (int i = start; i < s.length() && i < start + 3; i++) {
String str = s.substring(start, i + 1);
if (str.charAt(0) == '0' && str.length() > 1) break;
int num = Integer.parseInt(str);
if (num >= 0 && num
关注
打赏