Restore IP Addresses : 0ms

原创 2015年07月09日 10:06:09
class Solution {
public:
    void helper(int dot, int pos, int len, vector<string>& res, string& s, string& target) {
        int deltaLen = len - pos;
        if (dot == 3) {
			string tmp = s.substr(pos, deltaLen);
			int num = atoi(tmp.c_str());
            if (deltaLen < 4 && deltaLen > 0 &&  num < 256) {
				if ((num > 0 && tmp[0] == '0') || (num == 0 && tmp.size() > 1))
					return ;
				target += tmp;
                res.push_back(target);
				target.erase(target.end()-deltaLen, target.end());
			}
            return ;
        }
        
        if (deltaLen < (3 - dot + 1) * 1 || deltaLen > (3 - dot + 1) * 3)
            return ;
        
        for (int i = pos; i < pos + 3 && i < len; ++ i) {
			int num = atoi(s.substr(pos, i-pos+1).c_str());
			if (num == 0) {
				target += "0.";
				helper(dot+1, i+1, len, res, s, target);
				target.erase(target.end()-2, target.end());
				break;
			}
            else if (num < 256) {
				target += s.substr(pos, i-pos+1);
				target += '.';
                helper(dot+1, i+1, len, res, s, target);
				target.erase(target.end() - (i-pos+2), target.end());
            }
        }
    }
    
    vector<string> restoreIpAddresses(string s) {
        int len = s.size();
        vector<string> res;
        if (len < 4)
            return res;
		string target;
        helper(0, 0, len, res, s, target);
        return res;
    }
};

相关文章推荐

Leetcode Restore IP Addresses

给定一个数字字符串,求所有可能的点分十进制ip。 显然是dfs,有一些小细节写在了注释里。0ms。 #include #include /* @param: char* s 剩下的字符串 ...

leetcode第一刷_Restore IP Addresses

字符串的问题真是难,一般递归比较好写代码,一般地归还会超时,而且测试用例特别多。。 这道题刚拿到手时直接慌了,这情况也太多了,后来冷静下来想想,其实还是比较单纯的。一个ip地址,肯定是四个整数加三个...

LeetCode 93. Restore IP Addresses

1. 题目描述 Given a string containing only digits, restore it by returning all possible valid IP addre...

LeetCode093 Restore IP Addresses

详细见:leetcode.com/problems/restore-ip-addresses Java Solution: github package leetcode; import ja...
  • zxwtry
  • zxwtry
  • 2017年04月23日 22:27
  • 92

【LeetCode with Python】 Restore IP Addresses

Given a string containing only digits, restore it by returning all possible valid IP address combina...
  • nerv3x3
  • nerv3x3
  • 2014年06月15日 22:48
  • 1264

LeetCode 93. Restore IP Addresses 解题报告

LeetCode 93. Restore IP Addresses 解题报告 题目描述 Given a string containing only digits, restore it by r...

Leetcode 93. Restore IP Addresses

Given a string containing only digits, restore it by returning all possible valid IP address combina...

leetcode-93 Restore IP Addresses

原题链接: http://oj.leetcode.com/problems/restore-ip-addresses/  这道题的解法非常接近于NP问题,也是采用递归的解法。基本思路就是取出一个...
  • sole_cc
  • sole_cc
  • 2015年04月08日 18:33
  • 367

LeetCode | Restore IP Addresses

Given a string containing only digits, restore it by returning all possible valid IP address combina...

[JAVA]LeetCode93 Restore IP Addresses

[JAVA]LeetCode93 Restore IP Addresses
  • fumier
  • fumier
  • 2015年05月22日 09:46
  • 353
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Restore IP Addresses : 0ms
举报原因:
原因补充:

(最多只允许输入30个字)