leetcode 93. Restore IP Addresses(DFS, 模拟)
题目链接
leetcode 93. Restore IP Addresses
题意
给定一段序列,判断可能组成ip数的所有可能集合
思路
可以采用模拟或者DFS的想法,把总的ip数分成四段,每段判断是否满足题意
class Solution {
public:
vector<string> ans;
vector<string> restoreIpAddresses(string s){
if(!s.size()) return ans;
solve(0,0,s,"");
return ans;
}
//方法二: dfs
void solve(int p,int cnt,string &s,string tmp){
if(cnt>=4 && p<s.size()) return ;
if(p>=s.size()){//分成4段
if(cnt==4){
ans.push_back(tmp);
}
return ;
}
for(int i=1;i<=3;i++){//每段的长度最长不超过3
if(p+i>s.size()) return;
string t=s.substr(p,i);
int it=stoi(t);
if(to_string(it)!=t || it>255) continue;
// if(!cnt) tmp+=t;
// else tmp+="."+t;
solve(p+i,cnt+1,s,tmp+(cnt?"."+t:t));
}
}
//方法一:直接遍历所有情况
vector<string> restoreIpAddresses(string s) {
int n=s.size();
if(!n) return ans;
for(int a=1;a<=3;a++)
for(int b=1;b<=3;b++)
for(int c=1;c<=3;c++){
int d=n-(a+b+c);
if(d<1 || d>3) continue;
string a1=s.substr(0,a);
string b1=s.substr(a,b);
string c1=s.substr(a+b,c);
string d1=s.substr(a+b+c);
if(to_string(stoi(a1))!=a1 || to_string(stoi(b1))!=b1 ||
to_string(stoi(c1))!=c1 || to_string(stoi(d1))!=d1) continue;
if(stoi(a1)>255 || stoi(b1)>255 || stoi(c1)>255 || stoi(d1)>255) continue;
ans.push_back(a1+"."+b1+"."+c1+"."+d1);
}
return ans;
}
};
leetcode 93. Restore IP Addresses(DFS, 模拟)的更多相关文章
- 93. Restore IP Addresses(dfs)
Given a string containing only digits, restore it by returning all possible valid IP address combina ...
- [LeetCode] 93. Restore IP Addresses 复原IP地址
Given a string containing only digits, restore it by returning all possible valid IP address combina ...
- LeetCode : 93. Restore IP Addresses
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABZ4AAAHUCAYAAAC6Zj2HAAAMFGlDQ1BJQ0MgUHJvZmlsZQAASImVlw
- leetcode 93 Restore IP Addresses ----- java
Given a string containing only digits, restore it by returning all possible valid IP address combina ...
- 93.Restore IP Addresses(M)
93.Restore IP Addresses Medium 617237FavoriteShare Given a string containing only digits, restore it ...
- 【LeetCode】93. Restore IP Addresses
Restore IP Addresses Given a string containing only digits, restore it by returning all possible val ...
- 93. Restore IP Addresses
题目: Given a string containing only digits, restore it by returning all possible valid IP address com ...
- 【leetcode】Restore IP Addresses
Restore IP Addresses Given a string containing only digits, restore it by returning all possible val ...
- 【LeetCode】93. Restore IP Addresses 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 回溯法 日期 题目地址:https://leetco ...
随机推荐
- 精尽Spring MVC源码分析 - HandlerMapping 组件(一)之 AbstractHandlerMapping
该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...
- OS第六章
OS第七次实验 多进程 添加一个进程体 添加进程B,首先设置i的初值为0x1000,这样来方便程序运行时的时候能区分.其余地方与A一致. 相关变量和宏 Minix中定义了一个数组,叫做tasktab的 ...
- XSS攻击与防止
1.XSS又称CSS, cross sitescript, 跨站脚本攻击,是web程序中常见的漏洞 XSS属于被动式且用于客户端的攻击方式 XSS攻击类似于SQL注入攻击,攻击之前,我们先找到一个存在 ...
- 官宣 | Apache Flink 1.12.0 正式发布,流批一体真正统一运行!
官宣 | Apache Flink 1.12.0 正式发布,流批一体真正统一运行! 原创 Apache 博客 [Flink 中文社区](javascript:void(0) 翻译 | 付典 Revie ...
- 8. 老板 不加薪,我用了 这篇 加了 3K
在K8S中,容器本身是非持久化的,当容器崩溃后,kubelet将以镜像的初始状态重新启动容器,但是此时之前容器的数据已经丢失,我们该如何保护好容器的数据呢? 在同一Pod中的容器往往需要共享一些数据, ...
- 企业微信JS-SDK实现会话聊天功能
vue引入企业微信JS-SDK实现会话聊天功能 这两天在做一个对接企业微信实现会话聊天的功能, 发现企业微信文档这块儿做的不是特别详细,网上搜索也没找到特别完整的流程. 期间也踩了不少的坑, 在此进行 ...
- 图解JanusGraph系列 - JanusGraph指标监控报警(Monitoring JanusGraph)
大家好,我是洋仔,JanusGraph图解系列文章,实时更新~ 图数据库文章总目录: 整理所有图相关文章,请移步(超链):图数据库系列-文章总目录 源码分析相关可查看github(码文不易,求个sta ...
- Ubuntu替换清华源或者阿里源
倒腾pygame包的问题(Ubuntu 19.10),安装好pip后,又要安装一个pygame的包,倒腾了两天两夜,硬是因为网络问题(可能被强大的墙阻挡了),安装不成功,后面在网上找了篇帖子,用清华源 ...
- ELK原理介绍
本篇转载自:https://www.cnblogs.com/aresxin/p/8035137.html 为什么使用日志系统: 日志系统记录了系统运行.业务处理的方方面面,在故障排除.业务分析.数据挖 ...
- SecureCRT的下载、安装和Putty 的使用 SSH连接工具
SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件.SecureCRT支持SSH,同时支持Telnet和rlog ...