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
相关推荐
报错小能手3 分钟前
数据结构 带头节点的双向循环链表
数据结构·算法·链表
Yolo_TvT11 分钟前
数据结构:算法复杂度
数据结构·算法
OKkankan27 分钟前
多态概念及使用
开发语言·数据结构·c++·算法
nn在炼金30 分钟前
FlashAttention 1 深度解读:原理、价值、应用与实战
人工智能·算法
沐雪轻挽萤30 分钟前
pytorch模型部署基础知识
人工智能·pytorch·python
xxxxxmy35 分钟前
相向双指针—接雨水
python·相向双指针
nix.gnehc36 分钟前
PyTorch数据加载与预处理
人工智能·pytorch·python
WHS-_-202239 分钟前
Channel Estimation for mmWave High-Mobility Systems With 5G New Radio OFDM (I)
算法·5g
.格子衫.43 分钟前
026动态规划之跨步DP——算法备赛
算法·动态规划
roman_日积跬步-终至千里44 分钟前
【模式识别与机器学习(7)】主要算法与技术(下篇:高级模型与集成方法)之 扩展线性模型(Extending Linear Models)
人工智能·算法·机器学习