题目链接
93. 复原 IP 地址 - 力扣(LeetCode)
思路:
1.首先读懂题目,ip 地址需要满足的条件是 没有前导0,并不超过 255
2. 接下来我们就只需要把 这三个点,模拟的放入到 这个字符串中,会生成四个数字,这四个数字都需要满足上面这个条件,在这三个点分布的时候,我们还需要考虑到,这个点和点之间的距离,不能超过3
代码:
/** * @param {string} s * @return {string[]} */ var restoreIpAddresses = function (s) { let res = [] function isIp(num) { if (parseInt(num) > 255) { return false } if (num.length > 1 && num[0] === '0') return false return true } if (s.length < 4 || s.length > 16) return [] // 分布三个点,最后排查哪个ip地址不可用 for (let i = 1; i < s.length && i <= 3; i++) { for (let j = i + 1; j < s.length && j <= i + 3; j++) { for (let k = j + 1; k < s.length && k <= j + 3; k++) { let [a, b, c, d] = [s.substring(0, i), s.substring(i, j), s.substring(j, k), s.substring(k)] if (isIp(a) && isIp(b) && isIp(c) && isIp(d)) { res.push(a + '.' + b + '.' + c + '.' + d) } } } } return res };