复原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
};
相关推荐
数据大魔方5 分钟前
【期货量化实战】螺纹钢量化交易指南:品种特性与策略实战(TqSdk完整方案)
python·算法·github·程序员创富·期货程序化·期货量化·交易策略实战
XiaoYu20025 分钟前
第11章 LangChain
前端·javascript·langchain
豆沙沙包?6 分钟前
2026年--Lc334-2130. 链表最大孪生和(链表转数组)--java版
java·数据结构·链表
霉运全滚蛋好运围着转33 分钟前
启动 Taro 4 项目报错:Error: The specified module could not be found.
前端
cxxcode36 分钟前
前端模块化发展
前端
千金裘换酒38 分钟前
LeetCode 删除链表的倒数第N个结点
算法·leetcode
不务正业的前端学徒40 分钟前
docker+nginx部署
前端
不务正业的前端学徒1 小时前
webpack/vite配置
前端
SweetCode1 小时前
【无标题】
开发语言·c++·算法
shughui1 小时前
Python基础面试题:语言定位+数据类型+核心操作+算法实战(含代码实例)
开发语言·python·算法