题目:

  1. 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。
  2. 有效的 IP 地址正好由四个整数(每个整数位于 0 255 之间组成),整数之间用 '.' 分隔。
  3. 示例:
  4. 输入: "25525511135"
  5. 输出: ["255.255.11.135", "255.255.111.35"]
  6. 来源:力扣(LeetCode
  7. 链接:https://leetcode-cn.com/problems/restore-ip-addresses
  8. 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

答案:

时间:

20 min

  1. class Solution:
  2. def restoreIpAddresses(self, s: str) -> List[str]:
  3. n=len(s)
  4. pos=set()
  5. def dfs(i,temps,num,count):
  6. if num!="" and int(num) > 255:return
  7. if len(num)==2 and num[0]=="0":return
  8. if count==4:return
  9. if i==n:
  10. if temps not in pos and count==3 and temps[0]!=".":
  11. ans.append(temps)
  12. pos.add(temps)
  13. return
  14. if num=="" or int(num)<=255:
  15. dfs(i+1,temps+s[i],num+s[i],count)
  16. dfs(i+1,temps+"."+s[i],s[i],count+1)
  17. else:
  18. dfs(i+1,temps+"."+s[i],s[i],count+1)
  19. ans=[]
  20. dfs(0,"","",0)
  21. return ans

要点:

1. 这题搞呀

终结条件无数个:0-255 之间,010这种也不行,小数点一定要3个,不能重复,开头没有小数点。

其他:

代码报错:无