题目:
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 '.' 分隔。示例:输入: "25525511135"输出: ["255.255.11.135", "255.255.111.35"]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/restore-ip-addresses著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
答案:
时间:
20 min
class Solution:def restoreIpAddresses(self, s: str) -> List[str]:n=len(s)pos=set()def dfs(i,temps,num,count):if num!="" and int(num) > 255:returnif len(num)==2 and num[0]=="0":returnif count==4:returnif i==n:if temps not in pos and count==3 and temps[0]!=".":ans.append(temps)pos.add(temps)returnif num=="" or int(num)<=255:dfs(i+1,temps+s[i],num+s[i],count)dfs(i+1,temps+"."+s[i],s[i],count+1)else:dfs(i+1,temps+"."+s[i],s[i],count+1)ans=[]dfs(0,"","",0)return ans
要点:
1. 这题搞呀
终结条件无数个:0-255 之间,010这种也不行,小数点一定要3个,不能重复,开头没有小数点。
