LeetCode93 复原 IP 地址

前言

题目: 93. 复原 IP 地址
文档: 代码随想录——复原 IP 地址
编程语言: C++
解题状态: 没思路…

思路

依旧是切割问题,但同时还需要操作字符串添加逗号作为分隔符,并验证区间的合法性。

代码

class Solution {
private:vector<string> res;void backtracking(string& s, int startIndex, int pointNum) {if (pointNum == 3) {if (isVaild(s, startIndex, s.size() - 1)) {res.push_back(s);}return;}for (int i = startIndex; i < s.size(); i++) {if (isVaild(s, startIndex, i)) {s.insert(s.begin() + i + 1, '.');pointNum++;backtracking(s, i + 2, pointNum);pointNum--;s.erase(s.begin() + i + 1);} else break;}}bool isVaild(const string& s, int start, int end) {if (start > end) {return false;}if (s[start] == '0' && start != end) {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) {return false;}}return true;}
public:vector<string> restoreIpAddresses(string s) {res.clear();if (s.size() < 4 || s.size() > 12) return res;backtracking(s, 0, 0);return res;}
};
  • 时间复杂度: O ( 3 4 ) O(3^4) O(34),IP地址最多包含4个数字,每个数字最多有3种可能的分割方式,则搜索树的最大深度为4,每个节点最多有3个子节点。
  • 空间复杂度: O ( n ) O(n) O(n)

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

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

相关文章

DrissionPage设置启动浏览器为edge

1.查看浏览器启动路径 在浏览器地址栏输入下面地址&#xff0c;拿到可执行文件的路径 。 edge://version/ 2.替换路径 打开DrissionPage._configs. chromium_options.py文件&#xff0c;找到def browser_path(self)这个函数&#xff0c;将返回内容替换为edge的启动路径&#x…

数据访问:JPA关联MyBatis

JPA&#xff08;Java Persistence API&#xff09;和 MyBatis 是 Java 中常用的两种持久层框架。它们在数据访问和持久化方面有不同的设计理念和优缺点。下面是将 JPA 和 MyBatis 关联起来的一些总结&#xff1a; 1. JPA 和 MyBatis 的基本概念 JPA&#xff1a;JPA 是一种规范…

jupyter 笔记本中如何判定bash块是否执行完毕

jupyter notebook中 后台执行bash卡住解决 jupyter版本 !jupyter --version Selected Jupyter core packages... IPython : 8.27.0 ipykernel : 6.29.5 ipywidgets : 8.1.5 jupyter_client : 8.6.2 jupyter_core : 5.7.2 jupyter_server : 2.…

【网络安全】服务基础第一阶段——第十节:Windows系统管理基础---- 组策略高级应用

目录 一、组策略的基本概念 1.1 组策略的基本概念 1.1.1 组策略对象 1.2 配置 1.2.1 计算机配置&#xff08;Computer Configuration&#xff09; 1.2.2 用户配置&#xff08;User Configuration&#xff09; 1.3 作用范围 1.4 继承和优先级 1.4.1 继承&#xff08;In…

【WPF动画】

关于 WPF 中 System.Windows.Media.Animation 命名空间下常用动画类的简要介绍、使用方法和适用场景的表格 使用场景解释&#xff1a;示例代码1示例代码2&#xff1a;使用 Storyboard 组合多个动画代码解释应用场景 动画类描述使用示例适用场景DoubleAnimation用于为 double 类…

Qt:玩转QPainter序列九(文本,文本框,填充)

前言 继续承接序列八 正文 1. drawImage系列函数 绘制图像 inline void drawImage(const QPoint &p, const QImage &image); 作用: 在指定的点 p 上绘制 QImage 图像。图像的左上角将对齐到 p 点。 inline void drawImage(int x, int y, const QImage &image,…

ArkUI-状态管理-@Provide、@Consume、@Observed、@ObjectLink

ArkUI-状态管理 Provide装饰器和Consume装饰器&#xff1a;与后代组件双向同步概述观察变化框架行为Provide支持allowOverride参数 Observed装饰器和ObjectLink装饰器&#xff1a;嵌套类对象属性变化概述限制条件观察变化框架行为 Provide装饰器和Consume装饰器&#xff1a;与后…

Spring Security 有什么用?附使用教程

SecurityConfig 是一个 Spring Security 的配置类&#xff0c;用于配置应用程序的安全性。它主要用于定义如何保护应用程序的各种端点、身份验证和授权策略。SecurityConfig 在应用程序启动时被加载&#xff0c;并在整个应用程序生命周期中提供安全保护。 SecurityConfig的作用…

毕业设计选题系统

一、项目概述 Hi&#xff0c;大家好&#xff0c;今天分享的项目是《毕业设计选题系统》。 毕业论文选题是大学教学管理中的重要环节&#xff0c;关系到高校的教学质量。传统的手工管理方式工作效率低下、管理繁琐&#xff0c;浪费教师和学生的时间与精力的问题。本系统以提高…

87、k8s之污点

node 亲和性----nodename—nodeSelector ​ 软策略和硬策略 pod&#xff1a;亲和性 ​ 反亲和性 标签------>node节点的标签比app&#xff1a;nginx1标签优先级高 -------------------------------以上总结------------------------------------------ 一、污点 查看…

基于微信的热门景点推荐小程序的设计与实现(论文+源码)_kaic

摘 要 近些年来互联网迅速发展人们生活水平也稳步提升&#xff0c;人们也越来越热衷于旅游来提高生活品质。互联网的应用与发展也使得人们获取旅游信息的方法也更加丰富&#xff0c;以前的景点推荐系统现在已经不足以满足用户的要求了&#xff0c;也不能满足不同用户自身的个…

Leetcode面试经典150题-92.反转链表II

解法都在代码里&#xff0c;不懂就留言或者私信 比反转链表I略微难一点点 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, Li…

在移动应用程序中集成模糊方法的基于物联网的天气监测系统的实现

这篇论文的标题是《IMPLEMENTATION OF WEATHER MONITORING SYSTEM BASED INTERNET OF THINGS USING INTEGRATED FUZZY METHOD IN MOBILE APPLICATIONS》&#xff0c;作者是 Muhammad Malik Amin&#xff0c;来自 Politeknik Negeri Jakarta 的 D-IV INSTRUMENTASI DAN KONTROL …

代码随想录:62.不同路径

62. 不同路径 这道题是动态规划问题&#xff0c;主要是在初始化时考虑&#xff0c;我们可以初始dp[0][1]或dp[1][0]为1&#xff0c;其目的是为了让dp[1][1]为1&#xff0c;也就是起点进行初始化 class Solution { public:int uniquePaths(int m, int n) {int dp[200][200]{0}…

深度探索Unity与C#:编织游戏世界的奇幻篇章

在数字编织的梦幻之境中&#xff0c;Unity游戏引擎与C#编程语言如同双生子&#xff0c;共同编织着游戏世界的奇幻篇章。《Unity游戏开发实战&#xff1a;从零到C#高手》这本书&#xff0c;不仅仅是技术的堆砌&#xff0c;它更像是一位智慧导师&#xff0c;引领着我们深入探索这…

【HuggingFace Transformers】LlamaModel源码解析

LlamaModel源码解析 1. LlamaModel 介绍2. LlamaModel类 源码解析3. 4维因果注意力掩码生成 1. LlamaModel 介绍 LlamaModel 是一个基于 Transformer 架构的解码器模型&#xff0c;用于自然语言处理任务。它是 Meta 的 LLaMA (Large Language Model Meta AI) 系列的一部分&…

【基础】Three.js加载纹理贴图、加载外部gltf格式文件

1. 模型使用纹理贴图 const geometry new THREE.BoxGeometry(10, 10, 10);const textureLoader new THREE.TextureLoader(); // 创建纹理贴图加载器const texture textureLoader.load("/crate.gif"); // 加载纹理贴图const material new THREE.MeshLambertMater…

一款基于SpringBoot+Element Plus打造的进销存管理系统,方便二次开发或直接使用(附源码)

前言 当前市场上有许多进销存管理软件&#xff0c;但它们往往存在着一些痛点&#xff0c;比如灵活性不足、难以适应快速变化的需求&#xff0c;或者缺乏二次开发的支持。因此&#xff0c;我们需要一款既强大又灵活的软件来处理这些问题。 那么java进销存管理系统就是为了处理…

手把手写深度学习(27):如果获得相机位姿态的plücker embedding?以RealEstate10K为例

手把手写深度学习(0)&#xff1a;专栏文章导航 前言&#xff1a;用plücker embedding表示相机的位姿是一种非常常用的方法&#xff0c;这篇博客以RealEstate10K数据集为例子&#xff0c;详细讲解如何从相机的轨迹坐标中获得plücker embedding&#xff0c;用于下一步模型的学…

Java面试复习总结03

Java面试复习总结03 1、什么是SPI&#xff1f;2、SPI和API有什么区别&#xff1f;3、使用SPI机制的原因&#xff1f;4、SPI机制的优缺点&#xff1f; 1、什么是SPI&#xff1f; SPI 即 Service Provider Interface &#xff0c;字面意思就是&#xff1a;“服务提供者的接口”&…