您的位置:首页 > 其它

93. Restore IP Addresses

2016-09-15 10:38 211 查看
递归

class Solution {
public:
void valid(string s,unordered_set<string>& adds,string add,int cnt,int len)
{
if(cnt>4)
return;
if(cnt==4)
{
if(s!="")
return;
if(adds.find(add)==adds.end()&&add.size()==len+3)
adds.insert(add);
}
string tmp="";
for(int i=1;i<=3&&i<=s.size();i++)
{
tmp=s.substr(0,i);
int dig=atoi(tmp.c_str());
string tmp_add=add;
if(dig>=0&&dig<=255)
{
if(tmp_add=="")
tmp_add=to_string(dig);
else
tmp_add+='.'+to_string(dig);
valid(s.substr(i),adds,tmp_add,cnt+1,len);
}
}
}
vector<string> restoreIpAddresses(string s) {
vector<string> adds;
unordered_set<string> st;
string add;
valid(s,st,add,0,s.size());
for(auto it=st.begin();it!=st.end();it++)
adds.push_back(*it);
return adds;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: