Restore IP Addresses

来源:互联网 发布:什么是网络爬虫 编辑:程序博客网 时间:2024/06/05 23:58

Restore IP Addresses

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)

解析:

dfs遍历所有分割,注意边界条件

代码:

class Solution {public:        void dfs (string s, vector<string>&ans,string &path,int cnt,int begin)    {        int len=s.size();        if (cnt==4 &&begin==len)        {            int pathlen=path.size();            ans.push_back(path.substr(0,pathlen-1));            return ;        }        if (cnt==4)            return ;                for (int i=1; i<4; i++)        {            if ((begin+i)>s.size())                break;            string temp=s.substr(begin,i);            if (temp.size()!=1&&temp[0]=='0') continue;            int tt=atoi(temp.c_str());            if (tt>255) continue;            temp+='.';            string ttt=path;            path+=temp;                        dfs(s,ans,path,cnt+1,begin+i);            path=ttt;        }        return ;            }        vector<string> restoreIpAddresses(string s) {        vector<string>ans;        string path;        dfs(s,ans,path,0,0);        return ans;    }};



原创粉丝点击