• 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")
  • 相关阅读:
    React创建组件的方式
    react jsx语法
    mui区域滚动失效的问题
    css3 currentColor
    http协议
    iframe用法
    html关于强制显示、隐藏浏览器的滚动条
    null与undefind的区别(转)
    如何实现背景透明,文字不透明,兼容所有浏览器?
    事件委托
  • 原文地址:https://www.cnblogs.com/aboutblank/p/3991266.html
Copyright © 2020-2023  润新知