您的位置:首页 > 其它

LeetCode Restore IP Addresses

2014-03-03 19:47 330 查看
思路:可以枚举不用递归了,每个数字最多有三位数字,倒是由于马虎多提交了两次。

bool isValidNum(string s)
{
int num = 0;
int len = s.length();
if(len>1&&s[0]=='0')
return false;
for (int i=0;i<len;i++)
{
num = num*10 + s[i] - '0';
}
if(num>=0&&num<=255)
return true;
else
return false;
}
vector<string> restoreIpAddresses(string s) {
int n = s.length();
vector<string> ret;
if(n<4||n>12)
return ret;
string temp;
string temp1,temp2,temp3,temp4;
for (int i1=1;i1<=3;i1++)
{
for (int i2=1;i2<=3;i2++)
{
for (int i3=1;i3<=3;i3++)
{
for (int i4=1;i4<=3;i4++)
{
if(i1+i2+i3+i4==n)
{
temp1 = s.substr(0,i1);
if(!isValidNum(temp1))
continue;
temp2 = s.substr(i1,i2);
if(!isValidNum(temp2))
continue;
temp3 = s.substr(i1+i2,i3);
if(!isValidNum(temp3))
continue;
temp4 = s.substr(i1+i2+i3,i4);
if(!isValidNum(temp4))
continue;
temp = temp1 + "." + temp2 + "." + temp3 + "." + temp4;
ret.push_back(temp);
}
}
}
}
}
return ret;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: