# 分割类回溯
class Solution:
def restoreIpAddresses(self, s: str) -> List[str]:
path = []
res = []
self.dfs(s, path, res, start=0)
return res
def dfs(self, s, path, res, start):
if start >= len(s) and len(path) == 4:
res.append('.'.join(path[:]))
for i in range(start, len(s)):
temp = s[start: i+1]
if len(temp) > 1 and temp[0] == '0':
continue
elif int(temp) > 255:
continue
elif len(path) > 3:
break
else:
path.append(temp)
self.dfs(s, path, res, i+1)
path.pop()