LeetCode93:复原IP地址

devtools/2024/9/22 18:26:00/

题目描述
有效 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 中的任何数字。你可以按 任何 顺序返回答案。

在这里插入图片描述

代码

class Solution { 
public:vector<string> res;  bool isValid(const string &s,int start,int end) {if (start > end) return false;if (s[start] == '0' && start != end) { //前导有0return 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) {return false;}}return true;}void backTracking(string& s, int startIndex, int pointNum) {//判断逗点数量和第四段是否合法if (pointNum == 3) {if (isValid(s, startIndex, s.size() - 1)) {res.push_back(s);}return;}for (int i = startIndex; i < s.size(); i++) {if (isValid(s, startIndex, i)) {s.insert(s.begin() + i + 1, '.');pointNum++;backTracking(s, i + 2, pointNum);pointNum--;s.erase(s.begin() + i + 1);}else break;}}vector<string> restoreIpAddresses(string s) {if (s == "") return res;backTracking(s, 0, 0);return res;}
};

http://www.ppmy.cn/devtools/20098.html

相关文章

PDF加密了无法编辑?解密方法来了!

一下午都在捣鼓各种格式问题&#xff0c;首先是需要合并几个 PDF&#xff0c;然而有一个文件加密了无法操作&#xff0c;碰到加密不能编辑就很头痛&#xff0c;终于让我找到一个可行的方法了&#xff0c; 首先就这个加密文件右键选择打开方式-Google Chrome>>打开>>…

(救命)Kali Linux或者其他linux系统的触控板右键按下没反应,失效的解决办法

我每次安装kali的时候都会选择gnome桌面&#xff0c;每次安装好右键都是禁用的&#xff0c;按下和左键效果一样&#xff0c;每次都得去调鼠标右键&#xff0c;原来就不好找到那个选项&#xff0c;这次踏马居然连那个选项都没了&#xff0c;如果你去网上找教程你会发现网上根本没…

汽车新四化,会发生什么?

北京国际汽车展览会正如火如荼地进行中,作为国内外汽车行业瞩目的盛会&#xff0c;众多车企纷纷亮出了自家的“杀手锏”。 这场汽车的盛宴不仅集中展示了众多汽车品牌的最新技术和产品&#xff0c;更深刻体现了汽车新四化的发展趋势。汽车新四化&#xff0c;即电动化、网联化、…

代码随想录算法训练营day38

题目&#xff1a;509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯 参考链接&#xff1a;代码随想录 理论基础 DP就是一个状态由上一个子状态推导出来的问题&#xff0c;区别贪心主要由一个状态推导的过程。 解题五部曲&#xff1a; 确定dp数组&#xff08;dp table…

@Value

Value 注解是 Spring 框架中的一个注解&#xff0c;用于从属性文件、环境变量、Java 系统属性等地方读取值&#xff0c;并将这些值注入到 Spring 管理的 Bean 中。 Component public class MyBean {Value("${my.property}")private String myProperty;// Getter and…

Linux 创建磁盘分区以及挂载磁盘-详解(图文)

命令 查看磁盘使用情况命令&#xff1a; # 查看系统分区 fdisk -l # 查看硬盘分区 fdisk 路径 查看所有可用的块设备信息&#xff0c;并显示他们之间的依赖关系。 lsblk 我这里是已经挂载好了 确定分区文件系统类型 blkid 目录路径 使用fdisk 创建分区 [rootlocalhost…

Jmeter之Beanshell详解

一、 Beanshell概念 Beanshell: BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;BeanShell是一种松散类型的脚本语言(这点和JS类似);BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性…

C语言入门课程学习记录4

C语言入门课程学习记录4 第18课 - signed 与 unsigned第19课 - 再论数据类型第20课 - 经典问题剖析第21课 - 程序中的辅助语句&#xff08;上&#xff09;第22课 - 程序中的辅助语句&#xff08;下&#xff09; 本文学习自狄泰软件学院 唐佐林老师的 C语言入门课程&#xff0c;…