LeetCode 93. 复原IP地址

 2023-09-15 阅读 28 评论 0

摘要:leetcode15、 思路: 回溯+剪枝 遍历字符串,先计算第一网段,分别取1 2 3位数字,并组合判断是否符合IP规范, 若符合跳至下一网段,并且索引start挪位,temp+本网段值+“.” 递归 List<String> l = new A

 

leetcode15、

思路:

回溯+剪枝

遍历字符串,先计算第一网段,分别取1 2 3位数字,并组合判断是否符合IP规范,

若符合跳至下一网段,并且索引start挪位,temp+本网段值+“.”

递归

List<String> l = new ArrayList<>();public List<String> restoreIpAddresses(String s) {if(s.length()<4 || s.length() > 12){return l;}//1 表示第几个网段  0表示从字符串s哪一位开始算  “”表示追加的IPdfs(s,1,0,"");return l;}private void dfs(String s, int part,int start, String temp) {if(part == 4){if(isIP(s.substring(start))){l.add(temp+s.substring(start));}return;}for (int i = 1; i < 4 && start+i<s.length(); i++) {String t = s.substring(start,start+i);if(isIP(t)){dfs(s,part+1,start+i,temp+t+".");}}}private static boolean isIP(String substring) {if (substring.length() > 3) {return false;}if (substring.startsWith("0")) {return "0".equals(substring);} else {return Integer.valueOf(substring) <= 255;}}

 

 

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/57276.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息