资讯专栏INFORMATION COLUMN

leetcode-93-Restore IP Addresses

wmui / 1048人阅读

摘要:题目描述题目理解将一段字符广度搜索截取,分别有种组合形式,添加限制条件,过滤掉不适合的组合元素。长度,大小,首字母应用如果进行字符串的子元素组合穷举,可以应用。所有的循环,利用到前一个状态,都可以理解为动态规划的一种分支

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

Input: "25525511135"
Output: ["255.255.11.135", "255.255.111.35"]
题目理解:
 将一段字符str广度搜索截取,分别有n种组合形式,添加限制条件,过滤掉不适合的组合元素。 长度,大小,首字母
应用:如果进行字符串的子元素组合穷举,可以应用。
  所有的for循环,利用到前一个状态,都可以理解为动态规划的一种分支





import copy
class Solution:
    def restoreIpAddresses(self, s):
        """
        :type s: str
        :rtype: List[str]
        """
        lens=[1,2,3]
        combinations_all=[]
        combinations_return=[]
        def bfs(len_cur,s_cur,combinations_in):
            for len_iter in lens:
                combinations_in_copied=copy.deepcopy(combinations_in)
                len_left_over=len_cur-len_iter
                id_cur=s_cur[:len_iter]
                if id_cur and int(id_cur)>255:
                    return
                # print(id_cur)
                # combinations_in.append(id_cur)
                combinations_in_copied.append(id_cur)
                if len(combinations_in_copied)<=4:
                    if len_left_over == 0 and len(combinations_in_copied)==4:
                        combinations_in_copied=list(filter(lambda x:not (len(x)>1 and x.startswith("0")),combinations_in_copied))
                        if len(combinations_in_copied)==4:
                            # print("combinations_in_copied==>",combinations_in_copied)
                            combinations_in_copied=[str(elem_iter) for elem_iter in combinations_in_copied]
                            elem=".".join(combinations_in_copied)
                            combinations_return.append(elem)
                        # combinations_all.append(combinations_in_copied)
                        return
                    elif len_left_over<0:
                        return
                    else:
                        bfs(len_left_over,s_cur[len_iter:],combinations_in_copied)
                else:
                    return
        bfs(len(s),s,combinations_all)
        # print(combinations_return)
        return combinations_return

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44762.html

相关文章

  • LeetCode: 93. Restore IP Addresses

    摘要:以剩下的字符串,当前字符串,剩余单元数传入下一次递归。结束条件字符串长度为,并且剩余单元数为 Given a string containing only digits, restore it by returning all possible valid IP address combinations. For example:Given 25525511135, return [2...

    Shisui 评论0 收藏0
  • leetcode93. Restore IP Addresses

    摘要:题目要求返回字符串能够组成的所有地址。思路与代码地址由位二进制数字构成,一共分为个区间,每个区间位。那么我们只要划分出这四个区间,然后判断这四个区间的值是否符合标准即可。 题目要求 Given a string containing only digits, restore it by returning all possible valid IP address combinatio...

    chenjiang3 评论0 收藏0
  • [LeetCode] 93. Restore IP Addresses

    Problem Given a string containing only digits, restore it by returning all possible valid IP address combinations. Example: Input: 25525511135Output: [255.255.11.135, 255.255.111.35] Solution class So...

    xingqiba 评论0 收藏0
  • Node.js学习之路17——DNS模块介绍

    摘要:在中,提供模块,以实现域名查找及域名解析的处理。方法用于将一个域名解析为一组记录。记录是域名服务器记录,用来指定该域名由哪个服务器进行解析。回调函数有两个参数,是域名解析失败时触发的错误对象,参数为一个数组,其中存放了所有获取到的记录。 1. DNS 在Node.js中,提供DNS模块,以实现域名查找及域名解析的处理。 在DNS模块中,提供了三个主方法及一系列便捷方法。 reso...

    roadtogeek 评论0 收藏0
  • Java 网络编程(1):使用 NetworkInterface 获得本机在局域网内的 IP 地址

    摘要:问题提出在使用开发网络程序时,有时候我们需要知道本机在局域网中的地址。在平台上同样可以使用来实现获得机器在局域网内地址的功能。 1、问题提出 在使用 Java 开发网络程序时,有时候我们需要知道本机在局域网中的 IP 地址。很常见的一种做法是调用本地命令(比如 Windows 上的 ipconfig 命令和 Linux 上的 ifconfig 命令),接着解析本地命令的输出,最后得到本...

    Carl 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<