zoukankan      html  css  js  c++  java
  • LeetCode——Restore IP Addresses

    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)

    题目是给一个string,划分合理的ip的地址并给出包含所有合理的ip地址的list,我们知道ip地址的组成是4个部分,合理的范围是0.0.0.0~255.255.255.255

    代码主要有两个函数:

      isValid——验证是否合理,如果开头是0则这个串必须是0,否则必须大于0小于255;

      dfs——使用深搜的方式,搜索所有可能的组合;

    所以用DFS的方式,搜索所有可能的组合,每一次搜索至第四个部分的时候,如果也是valid的话,那么这是一个合理的IP,添加到结果列表里

    注意一下生成IP的细节, 添加 . 什么的。

    Python代码如下:

     1 class RestoreIPAddress:
     2 
     3     def isValid(self, src):
     4         if src[0] == '0':
     5             return src == '0'
     6         return 255 >= int(src) > 0
     7 
     8     def dfs(self, src, temp, res, count):
     9         if count == 3 and self.isValid(src):
    10             res.append(temp + src)
    11             return
    12         for i in range(1, min(4, len(src))):
    13             sub = src[0:i]
    14             if self.isValid(sub):
    15                 self.dfs(src[i:], temp + sub + '.', res, count + 1)
    16 
    17     def restoreIpAddresses(self, s):
    18         if len(s) < 4 or len(s) > 12:
    19             return []
    20         res = []
    21         self.dfs(s, "", res, 0)
    22         # print(res)
    23         return res
    24 
    25 p = RestoreIPAddress()
    26 p.restoreIpAddresses("0000")
  • 相关阅读:
    举重若轻是一种大气的生活态度
    论自我发展与自我职场生存
    ASP.Net与IIS原理粗浅的理解
    Net反射效率(转载)
    MVC技术
    单件模式 多线程
    公司的机票返利项目总结
    JS调用google地图
    System.Runtime.Serialization报错查找
    信息采集
  • 原文地址:https://www.cnblogs.com/aboutblank/p/3991266.html
Copyright © 2011-2022 走看看