LeetCode刷题-93. 复原IP地址
题目链接:93. 复原IP地址
¶题解:
带有剪枝的搜索,挺有意思!
¶题目简述:
给定一串数字,需要将其可以转化为的IP地址返回!
¶题解:
暴力搜索DFS:void dfs(string s, int u, int k, string path)
u:当前搜索到的位置k:当前搜索的点的个数path:当前状态下的IP地址
思路:
- 对于前导
0的处理,即012,IP地址没有前导0的,这个已经见过很多次了,直接i > u && s[u] == '0'即可判断! - 然后搜索下一位时保证下一位在
0 ~ 255范围即为合法数字,否则直接return - 下一个数的搜索要从上一个数的后一位开始,即
i = u开始
终止条件:
u == s.size():即搜到了字符串末尾- 剪枝优化:
u < s.size() && k == 4:即没有搜到最后,已经够了四个点
答案: u == s.size() && k == 4:即恰好组成一组IP地址,此时将该IP地址path最后的小数点去掉,即为答案
时间复杂度:一共n位,n - 1个空隙可插入点,即从n - 1个空隙三个点,即时间复杂度为:Cn-13
¶AC代码:
¶AC代码:
1 | |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小牛博客!
评论





