1. 需要一个isvalid函数去确认当前区域是否符合ip地址
2.停止条件 当pointnum = 3 时 ,继续去判断最后一段也就是start ~ 最后这个范围
3.单层递归逻辑,当前valid的情况下,修改s在判断的后一个位置+上 ‘.’
同时pointnum要加上1 也就是说明确认一个范围了
在递归回溯时,首先要把之前的标记‘.’去掉,之后也要把pointnum减少掉
子集的话 大部分逻辑是跟正常的回溯一致的。区别是子集需要在每个节点都收取结果
所以要把收集结果放在停止条件之前。
主要问题是在树层上去重
如果把used去掉 就会变成树枝,树层都进行去重
如果把used[i-1] == True 就会变成树层不去重但是树枝去重