93. Restore IP Addresses(dfs)
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)
思路:IP address的规则:一共四段;每段的值不能超过255;不能以0开头,但可以在一段中只有数字0
class Solution {
public:
vector<string> restoreIpAddresses(string s) {
dfs(s, "", );
return ret;
}
void dfs(string s, string currentIP, int depth){ //depth表示第几个section
if(depth == ){
if(check(s))
ret.push_back(currentIP+s);
return;
}
int len = s.length();
if(len < -depth){ //剩余string长度过短
return;
}
string s1, s2;
//check if we can assign 3 digits in the section
if(len > ){
s1 = s.substr(,);
if(check(s1)){
s2 = s.substr();
dfs(s2,currentIP+s1+".", depth+);
}
}
//check if we can assign 2 digits in the section
if(len > ){
s1 = s.substr(,);
if(check(s1)){
s2 = s.substr();
dfs(s2,currentIP+s1+".", depth+);
}
}
//assign 1 digits in the section
s2 = s.substr();
dfs(s2,currentIP+s[]+".", depth+);
}
bool check(string section){
int len = section.length();
if(len == || len > ) return false;
int value = stoi(section);
if(len==){
if(section[]!='' && value <= ) return true;
else return false;
}
else if(len==){
if(section[]=='') return false;
else return true;
}
return true;
}
private:
vector<string> ret;
};
当然也能用循环,每两个section之间的分割用一个for循环遍历分割的位置,一共是三重for循环。
93. Restore IP Addresses(dfs)的更多相关文章
- leetcode 93. Restore IP Addresses(DFS, 模拟)
题目链接 leetcode 93. Restore IP Addresses 题意 给定一段序列,判断可能组成ip数的所有可能集合 思路 可以采用模拟或者DFS的想法,把总的ip数分成四段,每段判断是 ...
- 93.Restore IP Addresses(M)
93.Restore IP Addresses Medium 617237FavoriteShare Given a string containing only digits, restore it ...
- 93. Restore IP Addresses
题目: Given a string containing only digits, restore it by returning all possible valid IP address com ...
- 【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产生所有可能的ip地址
[抄题]: Given a string containing only digits, restore it by returning all possible valid IP address c ...
- LeetCode OJ 93. Restore IP Addresses
题目 Given a string containing only digits, restore it by returning all possible valid IP address comb ...
- 【LeetCode】93. Restore IP Addresses 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 回溯法 日期 题目地址:https://leetco ...
- 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 ...
随机推荐
- windows下Java调用mysql的客户端备份和恢复
这种东西没啥好聊的,其实就是Java执行dos界面下的命令,不过有些要注意就是了,真实dos下面的命令和java调用的windows系统的接口其实还是有一点不同. /** * @param hostI ...
- java spring boot 出现 java.lang.UnsatisfiedLinkError
java.lang.UnsatisfiedLinkError: E:\ruanjian\jdk\bin\tcnative-1.dll: Can't load IA 32-bit .dll on a A ...
- 《DSP using MATLAB》 示例 Example 9.12
代码: %% ------------------------------------------------------------------------ %% Output Info about ...
- timescaledb 几个方便的api
timescaledb 提供了内置的api 操作,方便我们进行操作控制 hypertable 控制api add_dimension 向hypertable添加一个额外的分片方式,可以做为分片列有时间 ...
- spring与hibernate注解及XML方式集成
spring与hibernate注解及XML方式集成 Hibernate Xml方式 该种方式需要在sessionFactory中引入对应的hbm.xml文件,样例如下: <!-- spring ...
- java之 JVM 内存管理详解
一.JVM结构 根据<java虚拟机规范>规定,JVM的基本结构一般如下图所示: 从左图可知,JVM主要包括四个部分: 1.类加载器(ClassLoader):在JVM启动时或者在类运行时 ...
- 转 --自然语言工具包(NLTK)小结
原作者:http://www.cnblogs.com/I-Tegulia/category/706685.html 1.自然语言工具包(NLTK) NLTK 创建于2001 年,最初是宾州大学计算机与 ...
- 使用正则表达式去除html标签
不知道大家遇到这话总情况没有,从数据库读取数据,数据参杂着html标记<p>等,在显式的时候控制字符个数,这个时候就会出现页面样式串行,使用正则表达式去除html标记就不会有还这个问题. ...
- Top Android App使用的组件(应用)
Top Android App使用的组件 唱吧_462 smack:de.measite.smack:??? ???:org.apache:??? smack:org.jivesoftware.s ...
- C++ 实例化对象 p->printX()
一.从栈实例化对象 我们首先定义一个类,类的名字叫TV,里面包括两个成员变量,两个成员函数. class TV // 定义一个电视的类TV { public: ]; // 定义类的属性,一个数组 in ...