python实现leetcode之93. 复原 IP 地址

解题思路

取了四部分并且取完,就算是成功的划分方式

93. 复原 IP 地址

代码

class Solution:
    def restoreIpAddresses(self, s: str) -> List[str]:
        def h(ip, prefix):
            if len(prefix) == 4:
                return ['.'.join(prefix)] if ip == '' else []
            elif ip == '':
                return []
            else:
                if ip[0] == '0':
                    return h(ip[1:], [*prefix, ip[0]])
                else:
                    s1 = h(ip[1:], [*prefix, ip[0]])
                    s2 = h(ip[2:], [*prefix, ip[0:2]])
                    if int(ip[0:3]) <= 255:
                        s3 = h(ip[3:], [*prefix, ip[0:3]])
                    else:
                        s3 = []
                    return s1+s2+s3        
        return list(set(h(s, [])))
效果图

你可能感兴趣的:(python实现leetcode之93. 复原 IP 地址)