扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章主要介绍了Java怎么实现复原IP地址,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
10年积累的网站建设、网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站设计后付款的网站建设流程,更有山丹免费网站建设让你可以放心的选择与我们合作。
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。
示例:
输入: “25525511135”
输出: [“255.255.11.135”, “255.255.111.35”]
PS:
跪了,得LeetCode者得天下,上次我学的位运算符,这次学的ip地址
class Solution { private Listres = new ArrayList<>(); public List 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怎么实现复原IP地址”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流