给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。
示例:
输入: "25525511135"
输出: ["255.255.11.135", "255.255.111.35"]
C++
class Solution {
public:
bool judge(string s, int start, int i)
{
string str=s.substr(start,i-start+1);
int m=i-start+1;
if(m>3)
{
return false;
}
else if(m>1)
{
if('0'==str[0])
{
return false;
}
else
{
if(atoi(str.c_str())<=255)
{
return true;
}
else
{
return false;
}
}
}
else
{
return true;
}
}
void dfs(string s, vector& res, vector& tmp, int start)
{
if(start==s.length())
{
if(4==tmp.size())
{
string ss;
ss+=tmp[0];
for(int i=1;i<=3;i++)
{
ss+='.';
ss+=tmp[i];
}
res.push_back(ss);
}
return;
}
for(int i=start;i restoreIpAddresses(string s)
{
int n=s.length();
vector res;
if(n<4 || n>12)
{
return res;
}
vector tmp;
dfs(s,res,tmp,0);
return res;
}
};