首页 > 代码库 > Restore IP Addresses
Restore IP Addresses
题目
Given a string containing only digits, restore it by returning all possible valid IP address combinations.
For example:
Given"25525511135"
,return
["255.255.11.135", "255.255.111.35"]
. (Order does not matter)
方法
使用DFS的思想。结束条件是:ip地址是4部分。具体思路:ip地址每一部分最多有3位。先取出字符串s的第一位,判断是否符合要求。然后递归求解剩下的。取出前两位、取出前三位,进行类似的操作。符合要求的条件是 0-255,当有两位以上的时候,第一位不能为0。public void getString(String s,int num, List<String> subList, List<String> list) { if (num == 4 && s.equals("")) { String ip = ""; for (String str : subList) { ip = ip + str + "."; } list.add(ip.substring(0,ip.length() - 1)); } if (num < 4) { int len = s.length(); for (int i = 1; i < Math.min(4, len + 1); i++) { String str = s.substring(0, i); if (str.length() == 1 || (str.length() > 1 && str.charAt(0) != '0')){ int temp = Integer.parseInt(str); if (temp < 256) { subList.add(str); getString(s.substring(i, len), num + 1, subList, list); subList.remove(subList.size() - 1); } } } } } public List<String> restoreIpAddresses(String s) { List<String> list = new ArrayList<String>(); List<String> subList = new ArrayList<String>(); getString(s, 0, subList, list); return list; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。