原题目链接:
https://leetcode.com/problems/restore-ip-addresses/description/
java代码:
class Solution {
public List<String> restoreIpAddresses(String s) {
ArrayList<String> ips=new ArrayList<String>();
String current_ip="";
getAllIP(s,0,0,current_ip,ips);
return ips;
}
public void getAllIP(String s,int index,int step,String current_ip,ArrayList<String> ips)
{
if(s.length()-index>(4-step)*3)
{
return;
}
else if(s.length()-index<4-step)
{
return;
}
else if(step==4&&index==s.length())
{
ips.add(current_ip.substring(0,current_ip.length()-1));
}
else
{
int num=0;
for(int i=index;i<Math.min(index+3,s.length());i++)
{
num=num*10+s.charAt(i)-'0';
if(num<=255)
{
current_ip+=s.charAt(i);
getAllIP(s,i+1,step+1,current_ip+".",ips);
}
if(num==0) break;
}
}
}
}