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)

Hide Tags

Backtracking String

   

   这题是一道回溯题,其实记录好断开的位置便容易处理了。我使用的便是递归搜索的方法,用一个数组记录了断开的位置。
  1. #include <string>
  2. #include <vector>
  3. #include <iostream>
  4. using namespace std;
  5.  
  6. class Solution {
  7. public:
  8. vector<string> restoreIpAddresses(string s) {
  9. vector<string> ret;
  10. if(s.size()<) return ret;
  11. int idx[] = {,,,};
  12. helpFun(ret,s,idx,);
  13. return ret;
  14. }
  15.  
  16. void helpFun(vector<string> &ret,string & s,int * idx, int id)
  17. {
  18. if(id==){
  19. // for(int i =0;i<4;i++)
  20. // cout<<idx[i]<<" ";
  21. // cout<<endl;
  22. if(helpFun2(s.substr(idx[])))
  23. ret.push_back(s.substr(idx[],idx[]-idx[])+"."+
  24. s.substr(idx[],idx[]-idx[])+"."+
  25. s.substr(idx[],idx[]-idx[])+"."+
  26. s.substr(idx[]) );
  27. return ;
  28. }
  29. for(int i =idx[id-]+;i<s.length();i++){
  30. if(helpFun2(s.substr(idx[id-],i-idx[id-]))){
  31. idx[id] = i;
  32. helpFun(ret,s,idx,id+);
  33. }
  34. else
  35. return ;
  36. }
  37. }
  38.  
  39. bool helpFun2(string s)
  40. {
  41. if(s.length()==&&s[]=='') return true;
  42. if(s[]=='') return false;
  43. int sum = ;
  44. for(int i=;i<s.length();i++){
  45. sum = sum* + s[i]-'';
  46. if(sum>) return false;
  47. }
  48. return true;
  49. }
  50. };
  51.  
  52. int main()
  53. {
  54. string s="";
  55. Solution sol;
  56. vector<string> ret = sol.restoreIpAddresses(s);
  57. for(int i=;i<ret.size();i++)
  58. cout<<ret[i]<<endl;
  59. return ;
  60. }
 
 
 

[LeetCode] Restore IP Addresses 回溯的更多相关文章

  1. LeetCode: Restore IP Addresses 解题报告

    Restore IP Addresses My Submissions Question Solution Given a string containing only digits, restore ...

  2. [LeetCode] Restore IP Addresses 复原IP地址

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

  3. [leetcode]Restore IP Addresses @ Python

    原题地址:https://oj.leetcode.com/problems/restore-ip-addresses/ 题意: Given a string containing only digit ...

  4. LeetCode——Restore IP Addresses

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

  5. LeetCode Restore IP Addresses

    DFS class Solution { public: vector<string> restoreIpAddresses(string s) { return insertDot(s, ...

  6. 【leetcode】Restore IP Addresses

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

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

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

  8. 【LeetCode】93. Restore IP Addresses

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

  9. LeetCode解题报告—— Reverse Linked List II & Restore IP Addresses & Unique Binary Search Trees II

    1. Reverse Linked List II Reverse a linked list from position m to n. Do it in-place and in one-pass ...

随机推荐

  1. C语言数组篇(四)二维数组

      二维数组声明: ][] ={{,,},{,,}; //两行 三列         二维数组在声明的时候可以不写行,但一定要写列 ] = {{,},{,,},{}}; //未声明的地方自动补零 二维 ...

  2. [BZOJ1045] [HAOI2008] 糖果传递 (中位数)

    Description 题目链接 Solution 这题跟数列的中位数有关, 具体证明见刘汝佳的蓝皮书里 Code #include <cstdio> #include <algor ...

  3. 笔记-selenium+chrome headless

    笔记-selenium+chrome headless 1.      selenium+chrome headless phantomjs与selenium分手了,建议使用其它无头浏览器. chro ...

  4. 15,Flask-Script

    Flask-Script 从字面意思上来看就是 Flask 的脚本 是的,熟悉Django的同学是否还记得Django的启动命令呢? python manager.py runserver 大概是这样 ...

  5. C#学习你需要知道的---(For和Foreach)

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/52577283 作者:car ...

  6. cocos2d-x 3.0 导演,场景,层,精灵

    导演(Director) 一款游戏好比一部电影,只是游戏具有更强的交互性,不过它们的基本原理是一致的.所以在Cocos2dx中把统筹游戏大局的类抽象为导演(Director),Director是整个c ...

  7. 2.ifconfig

    转载http://www.cnblogs.com/peida/archive/2013/02/27/2934525.html 许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口 ...

  8. CFileDialog OFN_NOCHANGEDIR

    问题:CFileDialog 调用后变成了当前工作路径,变成了CFileDialog所选择的路径. 解决:在CFileDialog的dwFlags 设置标志OFN_NOCHANGEDIR就可以了,不会 ...

  9. ADMX Migrator

    实用工具特别推荐ADMX MigratorLance Whitney 下载这篇文章的代码: ADMX Migrator (2765KB) 对于那些 使用组策略的人而言,他们自然非常熟悉如何使用管理模板 ...

  10. Python学习-django-ModelForm组件

    ModelForm a. class Meta: model, # 对应Model的 fields=None, # 字段 exclude=None, # 排除字段 labels=None, # 提示信 ...