设为首页 加入收藏

TOP

Restore IP Addresses [leetcode]
2015-07-20 17:36:28 来源: 作者: 【 】 浏览:2
Tags:Restore Addresses leetcode

这题乍一看有点像Decode Ways ,实际上是一个深搜+剪枝的题目

也可以通过三个for循环寻找可行的‘.’的位置

递归方法如下:

    vector
  
    restoreIpAddresses(string s) {
        vector
   
     res; restore(s, 0, 0, res, ""); return res; } void restore(string & s, int start, int ipNum, vector
    
      & res, string ip) { if (start == s.size() && ipNum == 4) { res.push_back(ip.substr(1)); return; } if (start >= s.size() || ipNum >= 4) return; if (s[start] == '0') return restore(s, start + 1, ipNum + 1, res, ip + "." + s.substr(start, 1)); if (s[start] == '1' || s[start] == '2') { if (!(s[start] == '2' && start + 1 < s.size() && (s[start + 1] > '5' || s[start + 1] == '5' && start + 2 < s.size() && s[start + 2] > '5'))) restore(s, start + 3, ipNum + 1, res, ip + "." + s.substr(start, 3)); } restore(s, start + 1, ipNum + 1, res, ip + "." + s.substr(start, 1)); restore(s, start + 2, ipNum + 1, res, ip + "." + s.substr(start, 2)); }
    
   
  


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇POJ 3183 Stump Removal(简单题) 下一篇hdu 1429 (bfs+状态压缩)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis 分布式锁全解 (2025-12-25 17:19:51)
·SpringBoot 整合 Red (2025-12-25 17:19:48)
·MongoDB 索引 - 菜鸟 (2025-12-25 17:19:45)
·What Is Linux (2025-12-25 16:57:17)
·Linux小白必备:超全 (2025-12-25 16:57:14)