93. Restore IP Addresses
dfs
class Solution {
public List<String> restoreIpAddresses(String s) {
// dfs
List<String> result = new LinkedList<>();
searchIp(s, "", result, 1, 0);
return result;
}
private void searchIp(String s, String ip, List<String> result, int sectionCount, int start){
if(sectionCount == 5){
if(start>=s.length()) result.add(ip.substring(1, ip.length()));
return;
}
for(int i = 1; i<=Math.min(4, s.length()-start); i++){
if(!(i>1 && s.charAt(start)=='0')){
String str = s.substring(start, start+i);
// method: int Integer.valueOf(String)
if (Integer.valueOf(str)<256){
// remember: ip+'.'+str generate a new string obj
searchIp(s, ip+'.'+str, result, sectionCount+1, start+i);
}
}
}
}
}
Last updated
Was this helpful?