码迷,mamicode.com
首页 > 其他好文 > 详细

93. Restore IP Addresses

时间:2019-01-25 01:06:00      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:ext   NPU   color   ddr   ring   oge   ++   next   out   

【题目】

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

Example:

Input: "25525511135"
Output: ["255.255.11.135", "255.255.111.35"]

【题意】

给出一个string,返回符合要求的IP地址的集合。

IP地址的每一个段范围是0-255,一共有四段,除值为0外,不能以0开头。

【解答】

使用递归,按照要求生成符合条件的段的集合。

BFS和DFS每一个node只有一遍,所以时间复杂度是O(n)。带了其他算法的可能是O(nloge)。

这题感觉是O(n * n)。

class Solution {
public:
    vector<string> restoreIpAddresses(string s) {
        return getStrs(3, s);
    }
    
    vector<string> getStrs(int n, string s){
        int len = s.length();
        vector<string> res;
        if(n > len - 1 ) return res;
        if(n == 0){
            int value = 0;
            for(int i=0; i<len; i++){
                value = value * 10 + s[i] - 0;
            }
            if(s[0] == 0 && len == 1){
                res.push_back(s);
            }
            if(s[0]!=0 && value >=0 && value<=255){
                res.push_back(s);
            }
            return res;
        }
        string str = "";
        int value = 0;
        for(int i=0; i<len && i<3; i++){
            str += s[i];
            value = 10 * value + (s[i] - 0);
            if(value >= 0 && value <= 255){
                string temp = str + ".";
                string nextStr = "";
                for(int j=i+1; j<len; j++)
                    nextStr += s[j];
                vector<string> nextStrs = getStrs(n-1, nextStr);
                for(int j=0; j<nextStrs.size(); j++){
                    temp += nextStrs[j];
                    res.push_back(temp);
                    temp = str + ".";
                }
            }
            if(i==0 && s[i] == 0) break;
        }
        return res;
    }
};

 

93. Restore IP Addresses

标签:ext   NPU   color   ddr   ring   oge   ++   next   out   

原文地址:https://www.cnblogs.com/xxinn/p/10317661.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!