给定一个只包含数字的字符串 s,用以表示一个 IP 地址,返回所有可能的有效 IP 地址。
解析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| var restoreIpAddresses = function (s) { const result = []; function backtrack(start, parts) { if (parts.length === 4) { if (start === s.length) result.push(parts.join('.')); return; } for (let len = 1; len <= 3; len++) { if (start + len > s.length) break; const seg = s.substring(start, start + len); if ((seg.length > 1 && seg[0] === '0') || +seg > 255) continue; parts.push(seg); backtrack(start + len, parts); parts.pop(); } } backtrack(0, []); return result; };
|