93. Restore IP Addresses
Given a string containing only digits, restore it by returning all possible valid IP address combinations.
For example:
Given "25525511135"
,
return ["255.255.11.135", "255.255.111.35"]
. (Order does not matter)
class Solution {
public:
void guocheng(vector<string> &result,string m1,string s,int pos)
{
if (s.size() == 0)//如果s被用完了
{
if (pos == 4)
result.push_back(m1);
return;
}
if (pos != 0)
m1 = m1 + ".";
if (s[0] == '0')
guocheng(result, m1 + "0", s.substr(1, s.size()-1), pos+1);
else
{
int k = 1;
while( stoi(s.substr(0, k)) < 256 && s.size() >= k)
{
guocheng(result, m1 + s.substr(0,k), s.substr(k, s.size()-k), pos+1);
k++;
}
}
return;
}
vector<string> restoreIpAddresses(string s)
{
vector<string> result;
string m1 = "";
if(s.size() <= 12)
guocheng(result, m1, s, 0);
return result;
}
};