LeetCode 93. Restore IP Addresses(恢复IP地址)
来源:互联网 发布:js统计访问量 编辑:程序博客网 时间:2024/06/14 06:19
原题网址:https://leetcode.com/problems/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)
方法:深度优先搜索。
public class Solution { /*"0000""00000""25525511135""9245587303""0279245587303""010010" */ private void find(String s, int[] pos, int step, List<String> addresses) { if (step == pos.length-1) { if (pos[step]-pos[step-1]>3) return; if (pos[step]-pos[step-1]>1 && s.charAt(pos[step-1]) == '0') return; int a = Integer.parseInt(s.substring(pos[step-1]), 10); if (a>255) return; StringBuilder sb = new StringBuilder(); for(int i=0; i<pos.length-1; i++) { if (i>0) sb.append("."); sb.append(s.substring(pos[i], pos[i+1])); } addresses.add(sb.toString()); return; } // Set<Integer> used = new HashSet<>(); for(int i=pos[step-1]+1; i+(3-step)<pos[pos.length-1]; i++) { int a = Integer.parseInt(s.substring(pos[step-1], i), 10); if (a>255) break; // if (used.contains(a)) continue; // used.add(a); pos[step] = i; find(s, pos, step+1, addresses); if (a==0) break; } } public List<String> restoreIpAddresses(String s) { List<String> addresses = new ArrayList<>(); int[] pos = new int[5]; pos[0] = 0; pos[4] = s.length(); find(s, pos, 1, addresses); return addresses; }}
0 0
- LeetCode 93. Restore IP Addresses(恢复IP地址)
- LeetCode Restore IP Addresses 恢复IP地址
- Leetcode 93. Restore IP Addresses IP地址恢复 解题报告
- LeetCode | Restore IP Addresses(恢复ip地址)
- LeetCode OJ 之 Restore IP Addresses(恢复IP地址)
- Restore IP Addresses 恢复IP地址
- leetCode 93.Restore IP Addresses (恢复IP地址) 解题思路和方法
- Restore IP Addresses 还原IP地址@LeetCode
- LeetCode 93. Restore IP Addresses
- [Leetcode] 93. Restore IP Addresses
- LeetCode --- 93. Restore IP Addresses
- [LeetCode]93.Restore IP Addresses
- Leetcode 93.Restore IP Addresses
- [leetcode] 93.Restore IP Addresses
- [leetcode] 93.Restore IP Addresses
- 93. Restore IP Addresses LeetCode
- leetcode 93. Restore IP Addresses
- Leetcode 93. Restore IP Addresses
- c++中的cin,cout
- 字符串计数
- VB.net学习笔记(二十一)XML流的读写
- CentOS7安装redis cluster
- MyBatis Review——加载mappers映射文件的三种方式
- LeetCode 93. Restore IP Addresses(恢复IP地址)
- 文件对话框
- ios 开发学习日志 自定义alertView5
- Thread类的使用
- 斐波纳契通项
- 在CentOS 6.6上搭建OpenResty 1.9.7.4并输出示例
- 【HTML/CSS】浮动结构深入浅出
- android对话框自动弹出软键盘
- Linux系统下find指令详细用法与示例及Linux下的atime ,ctime,mtime