Restore IP Addresses(DFS的巅峰)
来源:互联网 发布:电子科学与技术知乎 编辑:程序博客网 时间:2024/06/14 09:19
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, 没见过这么复杂的,debug走一遍
import java.util.*;public class Solution {public List<String> restoreIpAddresses(String s) {List<String> result = new ArrayList<String>();List<String> list = new ArrayList<String>();if (s.length() < 4 || s.length() > 12)return result;helper(result, list, s, 0);return result;}public void helper(List<String> result, List<String> list, String s,int start) {if (list.size() == 4) {if (start != s.length())return;StringBuffer sb = new StringBuffer();for (String tmp : list) {sb.append(tmp);sb.append(".");}sb.deleteCharAt(sb.length() - 1);result.add(sb.toString());return;}for (int i = start; i < s.length() && i <= start + 3; i++) {String tmp = s.substring(start, i + 1);if (isvalid(tmp)) {list.add(tmp);helper(result, list, s, i + 1);list.remove(list.size() - 1);}}}private boolean isvalid(String s) {if (s.charAt(0) == '0')return s.equals("0"); // to eliminate cases like "00", "10"int digit = Integer.valueOf(s);return digit >= 0 && digit <= 255;}public static void main(String[] args) {Solution solution = new Solution();String s = "25525511135";List res = solution.restoreIpAddresses(s);System.out.println(res);}}
0 0
- Restore IP Addresses(DFS的巅峰)
- 【DFS】Restore IP Addresses
- DFS Restore IP Addresses
- DFS之Restore IP Addresses
- leetcode---restore-ip-addresses---dfs
- Posts Tagged 【dfs】Restore IP Addresses
- leetcode -- Restore IP Addresses -- 重点,dfs
- 93. Restore IP Addresses(dfs+剪枝)
- DFS-lintcode恢复ip地址(Restore IP Addresses)
- 【两类dfs总结】 Restore IP Addresses、Word Search、Subsets、带重复的全排列
- 93.leetcode Restore IP Addresses(medium)[回溯 DFS]
- leetcode 93. Restore IP Addresses DFS深度优先遍历
- LeetCode: Restore IP Addresses
- Restore IP Addresses
- LeetCode : Restore IP Addresses
- [LeetCode] Restore IP Addresses
- Restore IP Addresses
- [LeetCode]Restore IP Addresses
- android 设置系统的时间
- 报表性能优化方案之善用参数注入
- 解决ListView数据重复问题
- oracle创建表空间
- ListView的动态更新数据
- Restore IP Addresses(DFS的巅峰)
- 关于String s = new String("xyz"); 创建几个对象的问题
- Android 倒计时CountDownTimer
- JAVA反射详解
- 使用log4j
- js中使用正则表达式(三)RegExp对象构造函数属性介绍
- ioctl函数
- 南京高科和赛特斯
- XML学习