Leetcode93.复原IP地址 - Restore IP Addresses - Python - 回溯法

解题思路:

1.此题与Leetcode131.分割回文串十分相似。

请参考:Leetcode131.分割回文串-Palindrome Patitioning-Python-回溯法-CSDN博客

2.在此基础上,需要添加逗点,以及当前进入递归函数的字符串是否合法。

代码:

复制代码
class Solution(object):
    result = []
    path = []
    def trackBacking(self, s, startIndex, pointNum):
        if startIndex == len(s) and pointNum == 4:
            self.result.append('.'.join(self.path))
            return
        for i in range(startIndex, len(s)):
            if self.isValid(s, startIndex, i):
                self.path.append(s[startIndex: i+1])
                pointNum += 1
                self.trackBacking(s, i+1, pointNum)
                self.path.pop()
                pointNum -= 1
    
    def isValid(self, s, start, end):
        if start>end:
            return False
        if s[start] == '0' and start != end:
            return False
        num = 0
        for i in range(start, end+1):
            if not s[i].isdigit():
                return False
            num = num * 10 + int(s[i])
        if num > 255:
            return False
        return True

    def restoreIpAddresses(self, s):
        self.result = []
        self.trackBacking(s, 0, 0)
        return self.result
相关推荐
站大爷IP几秒前
Python frozenset 集合详解:不可变集合的终极指南
python
LF男男5 分钟前
《C#数据结构与算法》—二分查找法和顺序查找
数据结构·算法
一点.点6 分钟前
李沐动手深度学习(pycharm中运行笔记)——05.线性代数
pytorch·笔记·python·深度学习·pycharm·动手深度学习
Emma歌小白28 分钟前
JavaScript (JS) 和 Python 语法对比
python
minji...42 分钟前
C语言 函数递归
c语言·开发语言·算法
你好我是咯咯咯44 分钟前
代码随想录算法训练营Day36
算法
梓羽玩Python1 小时前
开源AI代理爆火!Suna:3天内新增5.5K+标星,自然对话驱动的自动化神器!
人工智能·python·github
uhakadotcom1 小时前
如何用AI打造高效招聘系统,HR效率提升100%!
后端·算法·面试
咖啡调调。1 小时前
模板引擎语法-过滤器
python·django·sqlite
Ankie Wan1 小时前
notepad++技巧:查找和替换:扩展 or 正则表达式
python·正则表达式·notepad++