题目描述
https://leetcode-cn.com/problems/restore-ip-addresses/
思路题解
直接dps,记得剪枝
class Solution:
def restoreIpAddresses(self, s: str) -> List[str]:
ans=[]
def dfs(p,i,s,str):
if i>=len(s) or p>4:return
if p==4:
if i+3>=len(s) and int(s[i:])<=255:
if i<len(s)-1 and s[i]=='0':return
str+=s[i:]
ans.append(str)
return
for j in range(1,4):
if int(s[i:i+j])>255 or (j>1 and s[i]=='0'):
return
dfs(p+1,i+j,s,str+s[i:i+j]+".")
dfs(1,0,s,"")
return ans