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)的更多相关文章

  1. leetcode 93. Restore IP Addresses(DFS, 模拟)

    题目链接 leetcode 93. Restore IP Addresses 题意 给定一段序列,判断可能组成ip数的所有可能集合 思路 可以采用模拟或者DFS的想法,把总的ip数分成四段,每段判断是 ...

  2. 93.Restore IP Addresses(M)

    93.Restore IP Addresses Medium 617237FavoriteShare Given a string containing only digits, restore it ...

  3. 93. Restore IP Addresses

    题目: Given a string containing only digits, restore it by returning all possible valid IP address com ...

  4. 【LeetCode】93. Restore IP Addresses

    Restore IP Addresses Given a string containing only digits, restore it by returning all possible val ...

  5. 93. Restore IP Addresses产生所有可能的ip地址

    [抄题]: Given a string containing only digits, restore it by returning all possible valid IP address c ...

  6. LeetCode OJ 93. Restore IP Addresses

    题目 Given a string containing only digits, restore it by returning all possible valid IP address comb ...

  7. 【LeetCode】93. Restore IP Addresses 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 回溯法 日期 题目地址:https://leetco ...

  8. LeetCode : 93. Restore IP Addresses

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABZ4AAAHUCAYAAAC6Zj2HAAAMFGlDQ1BJQ0MgUHJvZmlsZQAASImVlw

  9. leetcode 93 Restore IP Addresses ----- java

    Given a string containing only digits, restore it by returning all possible valid IP address combina ...

随机推荐

  1. java基础---->Zip压缩的使用

    java中提供了对压缩格式的数据流的读写.它们封装到现成的IO 类中,以提供压缩功能.下面我们开始java中压缩文件的使用. 目录导航: 关于压缩的简要说明 GZIP压缩文件的使用 ZIP压缩文件的使 ...

  2. timer Compliant Controller project (3)--bom and sch

    After optimization of structural solution , I  must prepare the bom and  drawing circuit diagram as ...

  3. C#读写 AB PLC 直接通过节点来读写数据 读写 AllenBradley PLC

    本文将使用一个Github开源的组件库技术来读写AB PLC,使用的是基于以太网的实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 官网:http:/ ...

  4. bag of words

    参考文献 Bag-of-words model (BoW model) 最早出现在NLP和IR领域. 该模型忽略掉文本的语法和语序, 用一组无序的单词(words)来表达一段文字或一个文档. 近年来, ...

  5. I.MX6 Android 5 root

    /********************************************************************************* * I.MX6 Android 5 ...

  6. Error: Could not symlink lib/pkgconfig/python-3.6.pc

    Mac安装python3的时候出如上错误 解决办法: 安装python3的时候就是输入python3死活没有反应 input sudo chown -R $USER /usr/local/lib/pk ...

  7. Laravel学习之旅(一)

    路由 1.简介:简单的说就是将用户的请求转发给相应的程序进行处理: 2.作用:就是建立url和程序之间的映射. 3.请求类型:get.post.put.patch.delete 相比于thinkphp ...

  8. Session History 属性和方法

    History 接口允许操作浏览器的曾经在标签页或者框架里访问的会话历史记录. js通过window.history来访问和操作的,操作的范围是某个tab的会话历史记录. 这个tab打开后,tab内的 ...

  9. cocos2dx ui显示机制

    实验1 1,a.addChild(b); a的宽高没变,还是自己的宽高. 层级添加  不会改变原层大小. 2.node.addChild(sprite);node的宽和高也没变 感觉2dx的显示不是树 ...

  10. oracle之 关闭透明大页

    方法一: 1.设置/etc/grub.conf文件,添加 transparent_hugepage=never ,在系统启动是禁用 [root@hbdw1 ~]# cat /etc/grub.conf ...