diff --git a/problems/0093.复原IP地址.md b/problems/0093.复原IP地址.md index 1d39df75..74c6df77 100644 --- a/problems/0093.复原IP地址.md +++ b/problems/0093.复原IP地址.md @@ -320,14 +320,15 @@ class Solution: if p[0] == '0': return False if int(p) > 0 and int(p) <256: return True return False - + def backtrack(s, startIndex): if len(s) > 12: return # 字符串长度最大为12 if len(path) == 4 and startIndex == len(s): # 确保切割完,且切割后的长度为4 res.append(".".join(path[:])) # 字符拼接 - return + return for i in range(startIndex, len(s)): + if len(s) - startIndex > 3*(4 - len(path)): continue # 剪枝,剩下的字符串大于允许的最大长度则跳过 p = s[startIndex:i+1] # 分割字符 if isValid(p): # 判断字符是否有效 path.append(p)