给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。
有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 ‘.’ 分隔。
示例:
1 2
| 输入: "25525511135" 输出: ["255.255.11.135", "255.255.111.35"]
|
参考解答
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
var restoreIpAddresses = function(s) { const res = []
const search = (cur, sub) => { if (sub.length > 12) { return res } else if (cur.length === 4 && cur.join('') === s) { res.push(cur.join('.')) } else { const len = Math.min(3, sub.length) for (let i = 0; i < len; i++) { const tmp = sub.substr(0, i + 1) if (tmp < 256 && Number(tmp).toString() === tmp) { search([ ...cur, tmp ], sub.substr(i + 1)) } } } } search([], s) return res };
|
解决思路
递归