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;
}
};
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;
}
};
相关文章推荐
- LeetCode *** 93. Restore IP Addresses
- 93. Restore IP Addresses
- leetcode 93. Restore IP Addresses
- leetcode93. Restore IP Addresses
- LeetCode-93.Restore IP Addresses
- Restore IP Addresses 还原IP地址@LeetCode
- [Leetcode] #93 Restore IP Addresses
- LeetCode Restore IP Addresses
- LeetCode93 Restore IP Addresses
- DFS之Restore IP Addresses
- Leetcode: Restore IP Addresses
- [Leetcode]Restore IP Addresses
- Restore IP Addresses - Leetcode
- leetcode--Restore IP Addresses
- leetcode93 Restore IP Addresses
- Restore IP Addresses
- Restore IP Addresses
- Restore IP Addresses
- LeetCode: Restore IP Addresses [093]
- LeetCode Restore IP Addresses