publicclassSolution{ private List<String> ans = new ArrayList<>(); private List<String> path = new ArrayList<>(); privateint n; // 主要方法,接受一个字符串 s 表示未分隔的 IP 地址,并返回所有可能的有效 IP 地址组合 public List<String> restoreIpAddresses(String s){ int n = s.length(); this.n=n; // 开始深度优先搜索,初始状态为索引 0 dfs(s, 0);
return ans; }
// 深度优先搜索方法 privatevoiddfs(String s, int i){ // 终止条件:当到达字符串末尾且路径长度为4时,将路径加入结果中 if (i == n && path.size() == 4) { ans.add(String.join(".", path)); return; }