Leetcode 93 Restore IP Addresses

来源:互联网 发布:linux如何安装bind 编辑:程序博客网 时间:2024/05/17 01:46

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

For example:
Given "25525511135",

return ["255.255.11.135", "255.255.111.35"]. (Order does not matter)

将给定字符串划分为IP地址。

后来看到有三重循环做的。。。。。DFS确实蠢了。

DFS,注意不能有前导0。

class Solution {public:    bool judge(string s)    {        if((s.size()>1 && s[0]=='0') || s.empty()) return false; //去除前导零的情况        int res=0;        for(int i=0;i<s.size();i++) res=res*10+s[i]-'0';        return (res>=0 && res<=255) ? true:false;    }    void dfs(vector<string>& res,string s,int now,string ip)    {        if(now==3)        {            if(judge(s)) res.push_back(ip+s);            return ;        }        int limit=min((int)s.size(),3);        for(int i=1;i<=limit;i++)        {            string temp=s.substr(0,i);            if(judge(temp)) dfs(res,s.substr(i),now+1,ip+temp+'.');        }    }    vector<string> restoreIpAddresses(string s) {        vector<string> res;        dfs(res,s,0,"");        return res;    }};


1 0
原创粉丝点击