From 649fe7a202b348300853a059bb1426035c7f2563 Mon Sep 17 00:00:00 2001 From: ironartisan Date: Tue, 24 Aug 2021 16:15:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B00093.=E5=A4=8D=E5=8E=9FIP?= =?UTF-8?q?=E5=9C=B0=E5=9D=80python3=E7=89=88=E6=9C=AC=EF=BC=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=89=AA=E6=9E=9D=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0093.复原IP地址.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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)