复原IP地址

题目链接

93. 复原 IP 地址 - 力扣(LeetCode)

思路:

1.首先读懂题目,ip 地址需要满足的条件是 没有前导0,并不超过 255

  1. 接下来我们就只需要把 这三个点,模拟的放入到 这个字符串中,会生成四个数字,这四个数字都需要满足上面这个条件,在这三个点分布的时候,我们还需要考虑到,这个点和点之间的距离,不能超过3

代码:

javascript 复制代码
/**
 * @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
};
相关推荐
2501_94471143几秒前
JS 对象遍历全解析
开发语言·前端·javascript
power 雀儿32 分钟前
掩码(Mask)机制 结合 多头自注意力函数
算法
发现一只大呆瓜34 分钟前
虚拟列表:支持“向上加载”的历史消息(Vue 3 & React 双版本)
前端·javascript·面试
会叫的恐龙36 分钟前
C++ 核心知识点汇总(第六日)(字符串)
c++·算法·字符串
小糯米6011 小时前
C++顺序表和vector
开发语言·c++·算法
css趣多多1 小时前
ctx 上下文对象控制新增 / 编辑表单显示隐藏的逻辑
前端
_codemonster1 小时前
Vue的三种使用方式对比
前端·javascript·vue.js
寻找奶酪的mouse1 小时前
30岁技术人对职业和生活的思考
前端·后端·年终总结
梦想很大很大1 小时前
使用 Go + Gin + Fx 构建工程化后端服务模板(gin-app 实践)
前端·后端·go
We་ct1 小时前
LeetCode 56. 合并区间:区间重叠问题的核心解法与代码解析
前端·算法·leetcode·typescript