📅  最后修改于: 2023-12-03 14:49:27.379000             🧑  作者: Mango
本文介绍如何编写程序从给定字符串生成所有可能的有效IP地址,以及相关技术和算法。
下面是基于Java实现的示例代码,使用了回溯算法:
public List<String> restoreIpAddresses(String s) {
List<String> result = new ArrayList<>();
StringBuilder ip = new StringBuilder();
restoreIpAddressesHelper(s, 0, ip, result);
return result;
}
private void restoreIpAddressesHelper(String s, int start, StringBuilder ip, List<String> result) {
if (ip.length() == s.length() + 4) {
result.add(ip.substring(0, ip.length() - 1));
return;
}
if (start >= s.length()) {
return;
}
int num = 0;
for (int i = start; i < Math.min(start + 3, s.length()); i++) {
num = num * 10 + s.charAt(i) - '0';
if (num > 255) {
break;
}
ip.append(num).append('.');
restoreIpAddressesHelper(s, i + 1, ip, result);
ip.delete(ip.length() - String.valueOf(num).length() - 1, ip.length());
if (num == 0) {
break;
}
}
}
输入:"25525511135"
输出:["255.255.11.135","255.255.111.35"]
本文介绍了如何通过回溯算法从给定的字符串生成所有可能的有效IP地址的程序,相关算法和技术也进行了介绍。此外,还给出了示例代码和输出结果,以供参考。