码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 每日一题 93. 复原IP地址

时间:2020-06-19 19:17:15      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:star   dfs   ip地址   style   self   idt   output   lazy   nbsp   

技术图片

回溯法

思路:

dfs,深度优先搜索。

代码:

class Solution:
    def restoreIpAddresses(self, s: str) -> List[str]:
        def valid(segment):
            return int(segment) <= 255 if segment[0] != 0 else len(segment) == 1
        def update_output(cur):
            segment = s[cur + 1:n]
            if valid(segment):
                path.append(segment)
                output.append(..join(path))
                path.pop()    
        def backtrack(start = 0, dots = 3):
            for cur in range(start , min(n - 1, start + 3)):
                segment = s[start :cur + 1]
                if valid(segment):
                    path.append(segment)  
                    if dots - 1 == 0:  
                        update_output(cur)  
                    else:
                        backtrack(cur+1, dots - 1)  
                    path.pop() 
        n = len(s)
        output, path = [], []
        backtrack()
        return output 

 

leetcode 每日一题 93. 复原IP地址

标签:star   dfs   ip地址   style   self   idt   output   lazy   nbsp   

原文地址:https://www.cnblogs.com/nilhxzcode/p/13165626.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!