[回溯]复原ip地址

有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。

  • 例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245""192.168.1.312" 和 "192.168@1.1" 是 无效 IP 地址。

给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入 '.' 来形成。你 不能 重新排序或删除 s 中的任何数字。你可以按 任何 顺序返回答案。

示例 1:

输入:s = "25525511135"
输出:["255.255.11.135","255.255.111.35"]

思路:此题思路,注意使用insert和erase函数来完成回溯的过程。终止条件为"."为3个时即可进行结果的填充。在回溯时要注意因为将字符串进行了增加,所以递归时需要将+2而非+1。

 

class Solution {vector<string> result;public:bool isvaild(string& s, int begin, int end) {if (begin > end)return false;if (s[begin] == '0' && begin != end)return false;int num = 0;for (int i = begin; i <= end; i++) {if (s[i] > '9' || s[i] < '0')return false;num = num * 10 + (s[i] - '0');if (num > 255)return false;}return true;}void backtracking(string& s, int point, int number) {if (number == 3) {if (isvaild(s, point, s.size() - 1))result.push_back(s);return;}for (int i = point; i < s.size(); i++) {if (isvaild(s, point, i)) {s.insert(s.begin() + i + 1, '.');number++;backtracking(s, i + 2, number);number--;s.erase(s.begin() + i + 1);}}}vector<string> restoreIpAddresses(string s) {backtracking(s, 0, 0);return result;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/706057.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GameFramework框架内置模块】4、内置模块之调试器(Debugger)

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群&#xff1a;398291828 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 【GameFramework框架】系列教程目录&#xff1a;…

MATLAB_ESP32有限脉冲响应FIR无限脉冲响应IIR滤波器

要点 ESP32闪烁LED&#xff0c;计时LEDESP32基础控制&#xff1a;温控输出串口监控&#xff0c;LCD事件计数器&#xff0c;SD卡读写&#xff0c;扫描WiFi网络&#xff0c;手机控制LED&#xff0c;经典蓝牙、数字麦克风捕捉音频、使用放大器和喇叭、播放SD卡和闪存MP3文件、立体…

Android通过反射动态挂载/卸载U盘

代码中动态控制U盘挂载和卸载。&#xff08;仅适用于系统应用&#xff09; 反射方式实现。 需要添加android:sharedUserId"android.uid.system" 到AndroidManifest.xml public static void mountDisk() {Log.v(TAG, "mountDisk begin");try {Class<?…

R语言【mclust】——Mclust():基于模型的聚类

Package mclust version 6.0.1 Description 基于参数化有限高斯混合模型的模型聚类。采用基于层次模型的聚类初始化EM算法对模型进行估计。然后根据BIC选择最优模型。 Usage Mclust(data, G = NULL, modelNames = NULL, prior = NULL, control = emControl(), initialization…

如何多环境切换?如何在微服务配置多环境?

问题本质: nacos配置中心的配置是如何被项目读取到的&#xff1f;(nacos的配置中心和项目是如何联系的&#xff1f;) 注意&#xff1a;nacos有配置管理和服务管理&#xff0c;别弄混。自动注册的是服务管理&#xff01;&#xff01;&#xff01; 1. 如何注册到nacos服务管理中心…

深度学习-回顾CNN经典网络LetNet

深度学习-回顾CNN经典网络LetNet 深度学习中&#xff0c;从LetNet到当前最火的GPT所用的Transformer&#xff0c;经典网络引领一波又一波的技术革命&#xff0c;它们把AI技术不断推向高潮。 用pytorch构建CNN经典网络模型LetNet&#xff0c;还可用数据进行训练模型&#xff0…

Java基础知识--12

目录 一、final的使用 二、接口 1.概述 2.与抽象类的异同 3.具体使用 4.内部类 成员内部类 静态内部类 局部内部类 一、final的使用 描述&#xff1a;final是最终的&#xff0c;不可改变的含义&#xff1b;可以修饰在类&#xff0c;方法&#xff0c;变量中 修饰类&…

蓝桥杯备战刷题one(自用)

1.被污染的支票 #include <iostream> #include <vector> #include <map> #include <algorithm> using namespace std; int main() {int n;cin>>n;vector<int>L;map<int,int>mp;bool ok0;int num;for(int i1;i<n;i){cin>>nu…

玩转ChatGPT:参考文献速查

一、写在前面 各位大佬&#xff0c;我又回来了&#xff0c;最近2月太忙啦&#xff08;过年、奶娃、本子、材料、结题&#xff09;&#xff0c;断更了。现水一篇证明我还活着&#xff01;&#xff01;&#xff01; 最近在写国自然本子&#xff0c;遇到一个估计大家都会遇到的问…

QT调用批处理命令及外部exe方法

一.QT调用外部exe 使用QT中的QProcess方法&#xff1a; #include <QProcess> QProcess process; QString cmd "test.exe"; //放在主程序exe同级目录下 process.start(cmd); // 启动可执行程序方法一 //process.startDetached(cmd); // 启动可执行程序方法…

Unity将4个纹理图拼接成1个纹理

需要的效果 最终实现的效果大概如下: 4个贴图上去 这里随便放一个切分的图。 Shader代码如下 直接上代码: // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)// Unlit shader. Simplest possible textured shad…

UE5 C++ Widget练习 Button 和 ProgressBar创建血条

一. 1.C创建一个继承Widget类的子类&#xff0c; 命名为MyUserWidget 2.加上Button 和 UserWidget的头文件 #include "CoreMinimal.h" #include "Components/Button.h" #include "Blueprint/UserWidget.h" #include "MyUserWidget.genera…

基于SVM的功率识别,基于支持向量机的功率识别,基于SVM的工况识别,svm工具箱详解

目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 Libsvm工具箱详解 简介 参数说明 易错及常见问题 完整代码和数据下载链接:基于SVM的功率识别,基于支持向量机的功率识别资源-CSDN文库 https://download.csdn.net/download/abc991835105/88862793 SVM应用实例, 基于SVM的功…

「连载」边缘计算(二十一)02-26:边缘部分源码(源码分析篇)

&#xff08;接上篇&#xff09; DeviceTwin struct组成剖析 该部分对DeviceTwin struct的组成进行剖析。接着devicetwin struct调用链剖析的实例化DeviceTwin struct&#xff08;dt : DeviceTwin{}&#xff09;往下剖析&#xff0c;进入DeviceTwin struct的定义&#xff0c;…

编程笔记 Golang基础 033 反射的类型与种类

编程笔记 Golang基础 033 反射的类型与种类 一、反射的类型和种类二、切片与反射三、集合与反射四、结构体与反射五、指针与反射六、函数与反射小结 反射机制的作用范围涵盖了几乎所有的类型和值的操作层面&#xff0c;它极大地增强了Go语言在运行时对于自身类型系统的探索和操…

Python实现自动检测设备连通性并发送告警到企业微信

背景&#xff1a;门禁机器使用的WiFi连接&#xff0c;因为某些原因会不定期自动断开连接&#xff0c;需要人工及时干预&#xff0c;以免影响门禁数据同步&#xff0c;故写此脚本&#xff0c;定时检测门禁网络联通性。 #首次使用要安装tcping模块 pip install tcpingfrom tcpin…

Pandas读取两个excel并join

Pandas 的 join就是merge&#xff0c;代码如下 import pandas as pd #读取两张表 dfpd.read_excel(“左表”) #读取右表的第三个sheet中的数据 df2pd.read_excel(“右表”,sheet_name“Sheet3”) #以左表为主表&#xff0c;左连接 outpd.merge(df ,df2 ,on‘query’ ,how‘lef…

【学习笔记】Serdes中的高速接口设计

参考文献&#xff1a; 一、绪论 1.1 背景 “串行替代并行”&#xff1a; 串行传输使用差分信号传输以传输更长距离&#xff1b; 并行传输因串扰无法长距离传输&#xff1b;并行线路对信号偏斜量的要求&#xff0c;限制了最大的传输速率。 SerDesSerializer Deserializer S…

欧拉函数性质和快速幂算法及python实现

目录 欧拉函数 快速幂算法 快速模幂算法 欧拉函数 两个不同的正整数a,b&#xff0c;若gcd(a,b)1,则a和b互质&#xff0c;1与任何正整数都互质 欧拉函数的意义 φ(n) 表示小于或等于正整数n的所有正整数中与n互质的数的个数 如φ(32) 16&#xff0c;即小于32的数中有16个…

Prompt 编程的优化技巧

一、为什么要优化 一&#xff09;上下文限制 目前 GPT-3.5 以及 GPT-4最大支持 16K 上下文&#xff0c;比如你输入超过 16k 的长文本&#xff0c;ChatGPT 会提示文本过大&#xff0c;为了避免 GPT 无法回复&#xff0c;需要限制 上下文在16k 以内 上下文对于 GPT 来说是非常重…