https://oj.leetcode.com/problems/restore-ip-addresses/

string到int的ip地址格式化。

分别用 i+1,j+1,k+1,表示前三个地址段的数位的个数。之后判断每个地址段是否数字个数都是从1到3,并且数是从0到255,符合条件的即可。

如果一个地址段的第一位是0,则这个地址段只能是0.比如 010010,表示成0.10.0.10或者0.100.1.0

  1. class Solution {
  2. public:
  3. int str2int( string str)
  4. {
  5. if(str[]==''&& str.size()>)
  6. return ; //this is 01,010 and so on , no allowed
  7. // if the first bit is 0 ,then it no allowed second bit
  8. int ans = ;
  9. for(int i = ;i<str.size();i++)
  10. {
  11. ans = ans*;
  12. ans += str[i] - '';
  13. }
  14. return ans;
  15. }
  16. vector<string> restoreIpAddresses(string s) {
  17. string strAnsPiece;
  18. vector<string> ans;
  19. if(s.size()> || s.size()<)
  20. return ans;
  21.  
  22. for(int i = ;i<=;i++)
  23. {
  24. string str1 = s.substr(,i+);
  25. if(s.size()-i->)
  26. continue;
  27. if(str2int(str1)>)
  28. break;
  29.  
  30. for(int j = ;j<=;j++)
  31. {
  32. if( s.size() - i - j - >)
  33. continue;
  34. string str2 = s.substr(i+,j+);
  35. if(str2int(str2)>)
  36. break;
  37.  
  38. for(int k = ;k<=;k++)
  39. {
  40. string str3 = s.substr(i+j+,k+);
  41. if(str2int(str3)>)
  42. break;
  43. if((s.size() - i - j - k - >= )&& (s.size() - i - j - k - <= ))
  44. {
  45. string str4 = s.substr(i+j+k+,s.size()-i-j-k-);
  46. if(str2int(str4)<=)
  47. {
  48. string ansPiece = str1;
  49. ansPiece.append( ".");
  50. ansPiece.append(str2);
  51. ansPiece.append( ".");
  52. ansPiece.append(str3);
  53. ansPiece.append(".");
  54. ansPiece.append(str4);
  55. ans.push_back(ansPiece);
  56. }
  57. }
  58.  
  59. }
  60. }
  61. }
  62. return ans;
  63. }
  64. };

LeetCode OJ-- Restore IP Addresses的更多相关文章

  1. Leetcode OJ : Restore IP Addresses backtrack暴搜 C++ solution

    class Solution { public: vector<string> ret; string src; int len; unordered_set<string> ...

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

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

  3. 【leetcode】Restore IP Addresses

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

  4. [LeetCode] 93. Restore IP Addresses 复原IP地址

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

  5. 【leetcode】Restore IP Addresses (middle)

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

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

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

  7. Java for LeetCode 093 Restore IP Addresses

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

  8. LeetCode : 93. Restore IP Addresses

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABZ4AAAHUCAYAAAC6Zj2HAAAMFGlDQ1BJQ0MgUHJvZmlsZQAASImVlw

  9. 【LeetCode】93. Restore IP Addresses

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

  10. LeetCode: Restore IP Addresses 解题报告

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

随机推荐

  1. ubuntu下RedisDesktopManager的安装,redis可视化工具

    官方网站:https://redisdesktop.com/download 一句命令行解决: sudo snap install redis-desktop-manager 或者直接通过软件管理中心 ...

  2. 阿里云全国快递物流查询api接口

    口地址: https://market.aliyun.com/products/56928004/cmapi021863.html?spm=5176.730005.productlist.d_cmap ...

  3. C# NotifyIcon 托盘控件

    右下角以图标形式显示,双击图标显示界面,最小化界面时不显示在任务栏. 第一步:在界面上添加NotifyIcon控件. 第二步:设置notifyIcon1的属性,添加图标,将Visible设为true. ...

  4. Python9-网络编程3-day32

    解决黏包的问题 #server import socket sk = socket.socket() sk.bind(('127.0.0.1',8080)) sk.listen() conn,addr ...

  5. redis--py操作redis【转】

    Python操作redis 请给作者点赞--> 原文链接 python连接方式:点击 下面介绍详细使用 1.String 操作 redis中的String在在内存中按照一个name对应一个val ...

  6. 关于51单片机IO引脚的驱动能力与上拉电阻

    单片机的引脚,可以用程序来控制,输出高.低电平,这些可算是单片机的输出电压.但是,程序控制不了单片机的输出电流. 单片机的输出电流,很大程度上是取决于引脚上的外接器件. 单片机输出低电平时,将允许外部 ...

  7. HDU 5371 Manacher Hotaru's problem

    求出一个连续子序列,这个子序列由三部分ABC构成,其中AB是回文串,A和C相同,也就是BC也是回文串. 求这样一个最长的子序列. Manacher算法是在所有两个相邻数字之间插入一个特殊的数字,比如- ...

  8. Python虚拟机函数机制之名字空间(二)

    函数执行时的名字空间 在Python虚拟机函数机制之无参调用(一)这一章中,我们对Python中的函数调用机制有个大概的了解,在此基础上,我们再来看一些细节上的问题.在执行MAKE_FUNCTION指 ...

  9. 记一次WMS的系统改造(1)-分析问题

    海外落地中的困境 目前面临主要的问题是"人",仓储系统主要辅助仓储人员进行生产,所以人变了其实一切就都已经变了,系统在海外面临最大的问题就是人变了. 这套软件是在国内的运营体系 ...

  10. PHP 修改配置文件后重启命名

    centosPHP配置文件路径: /etc/php.ini 修改完配置文件后需要重启php服务: systemctl restart php-fpm