题目:
思路:
递归
IP地址每个点相隔之间,只能有3种情况,只有一个,或者有2个,或者3个但是小于256.
集合所有情况即可
代码:
class Solution:
def restoreIpAddresses(self, s: str) -> List[str]:
ans=[]
def Restore(start,n,item):
if n<4 and item:
Restore(start+"."+item[0],n+1,item[1:])
if item[0]!="0":
if len(item)>=2:
Restore(start+"."+item[:2],n+1,item[2:])
if len(item)>=3 and int(item[:3])<256:
Restore(start+"."+item[:3],n+1,item[3:])
elif n==4 and not item:
ans.append(start[1:])
Restore("",0,s)
return ans