当前位置: 首页 > news >正文

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)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C程序设计——指针杂谈0
  • 短剧APP遭遇DDoS攻击的解决方法
  • sqlite3的db.parallelize方法:并行执行SQL语句,提升数据库操作效率
  • 网络编程 0903作业
  • Java 入门指南:Java 并发编程 —— 并发容器 ConcurrentSkipListMap
  • 航电系统,无人机的核心!!!
  • Https配置免费SSL证书
  • C++11中的constexpr
  • Linux编程--文件IO(2)、目录
  • vllm源码解析(一):整体架构与推理代码
  • Datawhale X 李宏毅苹果书 AI夏令营 入门 Task3-机器学习框架
  • vue3实现excel文件预览和打印
  • 忆恒创源发布PBlaze7 7A40系列PCIe 5.0企业级SSD,4K随机写突破百万IOPS!
  • Spring 学习笔记
  • 神经网络训练不起来怎么办(五)| Batch Normalization
  • 分享的文章《人生如棋》
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 【笔记】你不知道的JS读书笔记——Promise
  • CentOS 7 防火墙操作
  • js
  • React as a UI Runtime(五、列表)
  • storm drpc实例
  • Vue 2.3、2.4 知识点小结
  • windows-nginx-https-本地配置
  • yii2中session跨域名的问题
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 如何实现 font-size 的响应式
  • 如何使用 JavaScript 解析 URL
  • 网络应用优化——时延与带宽
  • 想写好前端,先练好内功
  • 新版博客前端前瞻
  • 一个SAP顾问在美国的这些年
  • 责任链模式的两种实现
  • 自定义函数
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #include到底该写在哪
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (7)摄像机和云台
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (三)Kafka离线安装 - ZooKeeper开机自启
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (五)网络优化与超参数选择--九五小庞
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转载)OpenStack Hacker养成指南
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .libPaths()设置包加载目录
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .Net 代码性能 - (1)