题目
class Solution {
public:
vector<string> ans;
vector<string> restoreIpAddresses(string s) {
fun(s,0,"",0);
return ans;
}
void fun(string s,int pos,string res,int num)
{
if(num==4)
{
if(pos==s.length())
{
ans.push_back(res.substr(0,res.length()-1));
}
return;
}
string ss="";
for(int i=pos;i<s.length()&&i<pos+3;i++)
{
ss += s[i];
if(judge(ss))
{
string str = ss +".";
fun(s,i+1,res+str,num+1);
}
}
}
bool judge(string s)
{
int x = atoi(s.c_str());
if(!(x>=0&&x<=255))
{
return false;
}
if(s[0]=='0'&&s.length()>=2)
{
return false;
}
return true;
}
};