某动一面——算法题
function restoreIpAddresses(s) {const result = [];function backtrack(start, path) {// 如果剩余的字符数不符合IP地址的要求,则剪枝if (s.length - start > (4 - path.length) * 3) return;if (s.length - start < (4 - path.length)) return;// 当找到了四段IP地址,且用光所有字符时,得到一个答案if (path.length === 4 && start === s.length) {result.push(path.join('.'));return;}for (let len = 1; len <= 3; len++) {// 防止越界if (start + len > s.length) break;// 取出一段字符串const segment = s.substring(start, start + len);// 排除长度大于1但以0开头的情况和大于255的情况if (segment.