首页 > 代码库 > 93. Restore IP Addresses
93. 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)
什么时候临时容器符合题意加入结果容器, 和容器中字符串的存在形式
if (list.size() == 4) { if (start != s.length()) { return; }
什么时候加入临时容器, 对特殊情况的处理:
private boolean isValid(String s) { if (s.charAt(0) == ‘0‘) { return s.equals("0"); } int digit = Integer.valueOf(s); return digit >= 0 && digit <= 255; }
public class Solution { /** * @param s the IP string * @return All possible valid IP addresses */ public ArrayList<String> restoreIpAddresses(String s) { // Write your code here ArrayList<String> res = new ArrayList<String>(); ArrayList<String> list = new ArrayList<String>(); if (s == null || s.length() == 0) { return res; } helper(res, s, list, 0); return res; } private void helper( ArrayList<String> res, String s, ArrayList<String> list, int start) { if (list.size() == 4) { if (start != s.length()) { return; } StringBuilder sb = new StringBuilder(); for (String tmp : list) { sb.append(tmp); sb.append("."); } sb.deleteCharAt(sb.length() - 1); res.add(sb.toString()); return; } for (int i = start; i < s.length() && i < start + 3; i++) { String item = s.substring(start, i + 1); if (isValid(item)) { list.add(item); helper(res, s, list, i + 1); list.remove(list.size() - 1); } } } private boolean isValid(String s) { if (s.charAt(0) == ‘0‘) { return s.equals("0"); } int digit = Integer.valueOf(s); return digit >= 0 && digit <= 255; } }
93. Restore IP Addresses
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。