class Solution(object):
def restoreIpAddresses(self, s):
"""
:type s: str
:rtype: List[str]
"""
result = list()
path = list()
if len(s) > 12:
return []
self.backtracking(s, result, 0, path)
return result
def backtracking(self, s, result, start, path):
if len(path) == 4:
if start == len(s):
result.append(".".join(path[:]))
return
for i in range(start+1, min(start+4, len(s)+1)):
if self.valid(s[start:i]):
path.append(s[start:i])
self.backtracking(s, result, i, path)
path.pop()
def valid(self, s):
if not s:
return False
if s[0] == '0' and len(s) > 1:
return False
if 0 > int(s) or int(s) > 255:
return False
return True
回溯法--LC.93复原IP地址
于 2022-04-16 11:16:40 首次发布