Java实现 LeetCode 93 复原IP地址
2023-09-14 08:58:07 时间
93. 复原IP地址
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。
示例:
输入: “25525511135”
输出: [“255.255.11.135”, “255.255.111.35”]
PS:
跪了,得LeetCode者得天下,上次我学的位运算符,这次学的ip地址
class Solution {
private List<String> res = new ArrayList<>();
public List<String> restoreIpAddresses(String s) {
if (s.length() < 4) //非法输入
return res;
backtrack(s, 0, new StringBuilder(), 0);
return res;
}
private void backtrack(String s, int start, StringBuilder sb, int pointNumOfSb) {
if (pointNumOfSb > 4) //大于三个点,则剪枝,这里大于4是因为最后一次还会加一
return;
if (start == s.length() && pointNumOfSb == 4) { //pointNumOfSb==4,则是一个合法的IP
res.add(sb.toString().substring(1)); //substring(1)是因为每次append(".xxx"),第零个位置是"."
return ;
}
for (int i = start; i < s.length() && i - start < 3; i++) { //i-start < 3,如果大于三位数则返回
String x = s.substring(start, i + 1);
if (x.charAt(0) == '0' && x.length() > 1) //如果是0xx这种则返回
return ;
if (Integer.parseInt(x) <= 255) {
sb.append("." + x);
backtrack(s, i + 1, sb, pointNumOfSb + 1);
sb.delete(sb.lastIndexOf("."), sb.length());
}
}
}
}
相关文章
- java局域网发送文件_Java如何实现局域网文件传输代码案例分享
- Java连接MySQL mysql-connector-java-bin.jar驱动包的下载与安装
- java helloworld源代码_Java Hello World源代码notepad++版
- protostuff java_Protostuff一键序列化工具、Protobuf JAVA实现
- java运行机制是什么_JAVA运行机制
- Java实现MSSQL数据库连接(java连接mssql)
- Java封装MySQL让编程更简单(java封装mysql)
- MySQL封装之Java实现(mysql封装java)
- Linux平台上Java新版本发布(linux发布java)
- Java操作Oracle数据库:实现数据库连接与访问(java连接oracle数据库)
- 使用Java操作MySQL数据库快速精准查询(java查询mysql数据库)
- MySQL连接Java:一步一步实现连接(mysql连接java)
- 连接MySQL连接技术之Java实现(java的mysql)
- Java与MySQL的无缝衔接:实现高效数据操作(java中使用mysql)
- Java开发与Linux运维的高效协作(java与linux运维)
- Java实现嵌入式MySQL的新解决方案(java嵌入式mysql)
- Oracle数据库中调用Java实现可扩展应用程序(oracle内嵌java)
- Java配置Oracle实现稳定的跨平台数据库连接(java配置oracle)
- Redis实现Java语言下的遍历处理(redis遍历java)