Я сейчас решаю проблему LeetCode 93. Восстановите IP-адреса. Вернуть все возможные действительные IP -адреса, которые можно получить из s. Вы можете вернуть их в любом заказе. Например, «0.1.2.201» и «192.168.1.1.1» являются действительными IP -адресами и «0.011.255.245», «192.168.1.312» и «192.168@1.1». ArrayList. Я дважды проверил свой базовый корпус и рекурсию и до сих пор не смог найти ошибку. Любая помощь будет очень признателен, спасибо! < /P>
public List restoreIpAddresses(String s) {
List res = new ArrayList();
if(s.length() == 0){
return res;
}
int[] path = new int[4];
snapshotIP(res,s,0,path,0);
return res;
}
public void snapshotIP(List res, String s, int index, int[] path, int segment){
if(segment == 4 && index == s.length()){
res.add(path[0]+"."+path[1]+"."+path[2]+"."+path[3]);
return;
}
else if(segment == 4 || index == s.length()){
return;
}
for(int len = 1; len = 2 && s.charAt(index) == '0'){
break;
}
path[segment] = val;
snapshotIP(res,s,index+len,path,segment+1);
path[segment] = -1; //undo the choice
}
}
Подробнее здесь: https://stackoverflow.com/questions/636 ... -ip-string