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
相关推荐
不穿格子的程序员24 分钟前
从零开始写算法——回溯篇4:分割回文串 + N皇后
算法·深度优先·dfs
小白学大数据26 分钟前
绕过拼多多 App 反抓包机制的综合逆向解决方案
开发语言·爬虫·python·自动化
使者大牙27 分钟前
【单点知识】 Python装饰器介绍
开发语言·数据库·python
ScilogyHunter30 分钟前
qBI有什么用
算法·qbi
Jackson@ML31 分钟前
2026最新版Sublime Text 4安装使用指南
java·python·编辑器·sublime text
TonyLee01732 分钟前
半监督学习介绍
人工智能·python·深度学习·机器学习
kong790692844 分钟前
Python核心语法-Python自定义模块、Python包
开发语言·python·python核心语法
OLOLOadsd1231 小时前
基于Mask-RCNN和RegNetX的茎蛀虫检测识别系统详解
python
龙山云仓1 小时前
No131:AI中国故事-对话荀子——性恶论与AI约束:礼法并用、化性起伪与算法治理
大数据·人工智能·深度学习·算法·机器学习
半路_出家ren1 小时前
1.古典密码概述
python·网络安全·密码学·古典密码·加密方式