【leetcode】93. 复原 IP 地址

2023-11-03

93. 复原 IP 地址

题目链接

在这里插入图片描述
93. 复原 IP 地址

思路分析

既然是复原IP地址,那么就必然需要一个判断是否符合IP的函数,其次我们对于一段处理好的子串,需要将其提取出来,以及在回溯的时候,我们要将这一段数据删除,这几个函数的边界处理问题时需要注意的,
最后,如果在某一段发现数据不合格,就说明这样的切割方法是没有结果过的,直接跳出就可以

代码实现

class Solution {
public:
    string path;
    vector<string> ret;
    // 判断字符串s在左闭又闭区间[start, end]所组成的数字是否合法
    bool isVaild(const string& s, int start, int end) {
        if (start > end) {
            return false;
        }
        if (s[start] == '0' && start != end) { // 0开头的数字不合法
                return false;
        }
        int num = 0;
        for (int i = start; i <= end; i++) {
            if (s[i] > '9' || s[i] < '0') { // 遇到非数字字符不合法
                return false;
            }
            num = num * 10 + (s[i] - '0');
            if (num > 255) { // 如果大于255了不合法
                return false;
            }
        }
        return true;
    }
    void backtracking(const string &s, int pointNum, int startIndex)
    {
        if(pointNum == 3)
        {
            if(isVaild(s, startIndex, s.size()-1))
            {
                path += s.substr(startIndex, s.size()- startIndex);
                ret.push_back(path);
            }
            return ;
        }
        for(int i = startIndex; i < s.size(); ++i)
        {
            if(isVaild(s, startIndex, i))
            {
                pointNum++;
                path += s.substr(startIndex, i - startIndex + 1) + '.';
                backtracking(s, pointNum, i+1);
                pointNum--;
                path.resize( startIndex + pointNum );
            }
            //在这里break
            else
                break;
        }
    }
    vector<string> restoreIpAddresses(string s) {
        backtracking(s, 0, 0);
        return ret;
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【leetcode】93. 复原 IP 地址 的相关文章

  • mysql之mysq类型18

    概述 接下来按照以下来讲解mysql的主要数据类型 常见的数据类型 数值型 整型 小数 定点数 浮点数 字符型 较短的文本 char varchar 较长的文本 text blob 较长的二进制数据 日期型 1 数值型 mysql的数值型包
  • 编写谷歌浏览器插件入门

    概述 学习目标 如何开发一个简单的浏览器插件 学习前提 HTML CSS JavaScript基础 官方文档 http chrome cenchy com 入门 其实跟着官方的说明文档就能很快入门 而且是中文文档 第一步 在电脑本地的任意位
  • 众享比特董事长严挺出席2022中国计算机大会“元宇宙、Web3.0、NFT:机遇还是泡沫?”技术论坛

    12月10日晚 为期三天的2022中国计算机大会 2022CNCC 成功落下帷幕 众享比特董事长严挺出席 元宇宙 Web3 0 NFT 机遇还是泡沫 技术论坛并参与专题研讨 第三行左一为众享比特董事长严挺 中国计算机大会 CNCC 是由中国
  • 【华为OD机试c++/python】补种未成活胡杨【2023 B卷

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 近些年来 我国防沙治沙取得显著成果 某沙漠新种植N棵胡杨 编号1 N 排成一排 一个月后 有M棵胡杨未能成活 现可补种胡杨K棵 请问如何补种 只

随机推荐

  • java 什么情况下触发gc java gc触发时机

    以下是JVM中创建一个新对象的时候的完成的一个流程 二 Full GC触发过程 2 1 System gc 方法的调用 此方法的调用是建议JVM进行Full GC 虽然只是建议而非一定 但很多情况下它会触发 Full GC 从而增加Full
  • echarts环形图设置不重复颜色

    在做后台管理系统时 很多时候都需要用图表来展示数据 echarts是其中一种使用广泛的图表库 调色盘颜色种数有限 如5 1 2版本 只有9种颜色 当需要展示的种类超过9种时 就会重复使用默认的颜色列表 但是往往不希望使用重复的颜色 可使用如
  • R语言的习题练习(基本数据管理)

    1 创建如下数据框city 2 使用 为city数据框增加一列人口数population 分别取值为 1103 446 488 3 使用within函数或者transform函数为步骤2之后的city数据框增加一列log populatio
  • OpenCV入门系列3:图像的膨胀、开闭运算和梯度运算

    文章目录 前言 一 图像的膨胀 1 1 膨胀原理 1 2 膨胀实现 1 3 结果展示 二 开闭运算 2 1 开运算实现与结果 2 2 闭运算实现与结果 三 梯度运算 3 1 梯度介绍 3 2 梯度实现 3 3 结果展示 总结 前言 在系列2
  • 「一文搞定」串口、COM、UART、TTL、USB、RS-232、RS-485、I2C、SPI、CAN、1-WIRE

    文章目录 一 串口 二 UART 三 TTL电平 四 USB 五 RS 232 六 RS 485 七 IIC 八 SPI 九 CAN 十 1 WIRE 一 串口 1 串口概述 串行接口简称为串口 也叫串行通信接口 一般也叫COM口 这是一个
  • 显示没有可连接的后端服务器,网关没有可连接的后端服务器

    网关没有可连接的后端服务器 内容精选 换一换 负载均衡器会定期向后端服务器发送请求以测试其运行状态 这些测试称为健康检查 通过健康检查来判断后端服务器是否可用 负载均衡器如果判断后端服务器健康检查异常 就不会将流量分发到异常后端服务器 而是
  • doris前缀索引、doris bloom filter索引、doris bitmap索引原理及适应场景

    索引用于帮助快速过滤或查找数据 目前 Doris 主要支持两类索引 内建的智能索引 包括前缀索引和ZoneMap索引 用户创建的二级索引 包括Bloom Filter索引和Bitmap倒排索引 其中ZoneMap索引是在列存格式上 对每一列
  • 学习心得-强化学习【贝尔曼最优公式】

    只为记录学习心得 学习视频来源B站up主 西湖大学空中机器人 链接 https www bilibili com video BV1sd4y167NS spm id from 333 337 search card all click vd
  • Windows系统漏洞检测与漏洞利用以及修复(永恒之蓝ms17-010)

    前言 环境 攻击机 Linux kali IP 192 168 107 129 靶机 Windows 7 Enterprise x64 IP 192 168 107 143 实验条件 两台机子可以相互ping通 并且靶机 无补丁 开启了44
  • 测高原理PPT

    转载 https www slideserve com beryl radar altimeter fundamentals and near shore measurements powerpoint ppt presentation
  • Windows 下载安装 netcat(nc)命令

    Windows 下载安装 netcat命令 netcat nc 下载 netcat nc 安装 配置环境变量 测试 netcat nc 下载 netcat nc 下载地址 https eternallybored org misc netc
  • 脉动阵列

    脉动阵列是一个比较古老的概念 早在1982年就有了 可是 最近google的TPU采用了这个结构 脉动阵列又火了起来 我也是从今年新入职了一家公司后才接触到的 对比之前自己设计的AI架构 脉动阵列确实有很多优势 所以本文从传统AI计算架构和
  • java中filereader读取文件_FileReader读取文件

    前言 FileReader是一种异步文件读取机制 结合input file可以很方便的读取本地文件 input file 在介绍FileReader之前 先简单介绍input的file类型 input的file类型会渲染为一个按钮和一段文字
  • [IDEA]报错 Could not autowire. No beans of 'XXXMapper' type found. less... (Ctrl+F1)

    在Idea的spring工程里 经常会遇到Could not autowire No beans of xxxx type found的错误提示 但程序的编译和运行都是没有问题的 这个错误提示并不会产生影响 但红色的错误提示在有些有强迫症的
  • ES基础操作及java代码

    ES相关随手记 文章目录 ES相关随手记 一 基本操作 1 es三大属性 索引 映射 文档 1 1 索引 1 2 映射 1 3 文档 1 3 2 文档的批量操作 二 高级查询 说明 1 查询所有 2 term 基于关键词查询 3 range
  • Apache + Tomcat + proxy_module 集群配置详解

    见转载 地址 http blog csdn net wccmfc123 article details 22829219 Apache Tomcat集群配置详解 2 补充 对 tomcat6 conf server xml文件修改配置如图
  • Camera日记(一)-ISP

    ISP Image Signal Processor 既图像信号处理 用于处理图像信号传感器输出的图像信号 它在相机系统肿占有核心主导的地位 是构成相机的重要设备 背景 图像采集设备存在缺陷 作用 数字图像经过采集 存储 显示 达到与人眼直
  • isce D-InSAR

    一 数据准备 二 配置文件insarApp xml 我设置的解缠常用参数grass和snaphu
  • 初等代数不等式1

    10 3赫尔德不等式还可以写成 即 即 简称 幂均值的几何均值不小于积均值 注 赫尔德与切比雪夫的不同点 赫尔德要求是 切比雪夫要求是同调 赫尔德的积均值小 切比雪夫的积均值大 10 4若 和为三个正实数序列 且 则 式称为加权赫尔德不等式
  • 【leetcode】93. 复原 IP 地址

    93 复原 IP 地址 题目链接 思路分析 代码实现 题目链接 93 复原 IP 地址 思路分析 既然是复原IP地址 那么就必然需要一个判断是否符合IP的函数 其次我们对于一段处理好的子串 需要将其提取出来 以及在回溯的时候 我们要将这一段