093 Restore IP Addresses 复原IP地址
给定一个只包含数字的字符串,复原它并返回所有可能的IP地址格式。
例如:
给定 "25525511135",
返回 ["255.255.11.135", "255.255.111.35"]. (我们可以不考虑数组内元素的顺序)
详见:https://leetcode.com/problems/restore-ip-addresses/description/
Java实现:
class Solution { public List<String> restoreIpAddresses(String s) { List<String> res = new ArrayList<String>(); if (s.length()<4||s.length()>12){ return res; } String item = new String(); helper(s, 0, item, res); return res; } private void helper(String s, int start, String item, List<String> res){ if (start == 3 && isValid(s)) { res.add(item + s); return; } for(int i=0; i<3 && i<s.length()-1; ++i){ String substr = s.substring(0,i+1); if (isValid(substr)){ helper(s.substring(i+1), start+1, item + substr + '.', res); } } } private boolean isValid(String s){ if (s.charAt(0)=='0'){ return s.equals("0"); } int num = Integer.parseInt(s); if(num > 0 && num <= 255){ return true; }else{ return false; } } }
参考:https://www.cnblogs.com/springfor/p/3886409.html