题目
2.解法
①集合,字符串+dfs
class Solution {
public List<String> restoreIpAddresses(String s) {
List<String> res = new ArrayList<>();
StringBuilder temp = new StringBuilder();
dfs(0, s, res, temp);
return res;
}
private void dfs(int k, String s, List<String> res, StringBuilder temp){
if(k == 4 && s.length() == 0){
res.add(temp.toString());
return;
}
if(k < 4 && s.length() > 0){
for(int i = 1; i <= s.length() && i <= 3; i++){
if(i != 1 && s.charAt(0) == '0') break;
String part = s.substring(0, i);
if(Integer.valueOf(part) <= 255){
if(temp.length() != 0){
part = '.' + part;
}
temp.append(part);
dfs(k + 1, s.substring(i), res, temp);
temp.delete(temp.length() - part.length(), temp.length());
}
}
}
}
}