給定一個只包含數字的字符串,復原它並返回所有可能的 IP 地址格式。
有效的 IP 地址正好由四個整數(每個整數位於 0 到 255 之間組成),整數之間用 '.' 分隔。
示例:
輸入: "25525511135"
輸出: ["255.255.11.135", "255.255.111.35"]
class Solution {
public:
vector<string> restoreIpAddresses(string s,int k) {
vector<string>ans;
if(s.length()==0)return ans;
if(k>1)for(int i=0;i<3 && i<s.length()-1;i++)
{
string s1=s.substr(0,i+1),s2=s.substr(i+1,s.length()-i-1);
int x=atoi(s1.c_str());
if(x>255 || s[0]=='0' && s1.length()>1 || s1.length()>3)continue;
vector<string>tmp=restoreIpAddresses(s2,k-1);
for(int j=0;j<tmp.size();j++)
{
string s3=tmp[j];
ans.push_back(s1+"."+s3);
}
}
else
{
int x=atoi(s.c_str());
if(x>255 || s[0]=='0' && s.length()>1 || s.length()>3);
else ans.push_back(s);
}
return ans;
}
vector<string> restoreIpAddresses(string s) {
return restoreIpAddresses(s,4);
}
};