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

代码随想录算法训练营day27 | 93.复原IP地址、78.子集、90.子集II

93.复原IP地址

和C++不同,使用列表存储已经分割的数据,而不是直接操作字符串。为了使用这个列表搞了老久,主要问题出在,在判断终止条件的时候,path也需要回溯一下

class Solution:def __init__(self):self.result = []self.path = []def is_valid_ip(self, s, start, end):if start > end:return False# 不能以0开头if s[start] == '0' and start != end:return False# 不能含有非法字符num = 0for letter in s[start:end+1]:if letter < '0' and letter > '9':return Falsenum = num * 10 + int(letter)# 不能超过255if num > 255:return Falsereturn Truedef backtracking(self, s, startIndex, pointNum):if pointNum == 3:if self.is_valid_ip(s, startIndex, len(s)-1):self.path.append(s[startIndex:])self.result.append(".".join(self.path))self.path.pop()returnfor i in range(startIndex, len(s)):if self.is_valid_ip(s, startIndex, i):self.path.append(s[startIndex:i+1])pointNum += 1self.backtracking(s, i+1, pointNum)self.path.pop()pointNum -= 1else:break  # 本次数值不合法,下一次也不会合法,看看合法的条件就可明白def restoreIpAddresses(self, s: str) -> List[str]:if len(s) < 4 or len(s) > 12:return self.resultself.backtracking(s, 0, 0)return self.result

78.子集

子集问题是收集树的所有节点

class Solution:def __init__(self):self.result = []self.path = []def backtracking(self, nums, startIndex):self.result.append(self.path[:])# 终止条件可不写if startIndex >= len(nums):returnfor i in range(startIndex, len(nums)):self.path.append(nums[i])self.backtracking(nums, i+1)self.path.pop()def subsets(self, nums: List[int]) -> List[List[int]]:self.backtracking(nums, 0)return self.result

90.子集II

和之前做的一样,树结构的层级遍历不能重复,纵向可以重复

class Solution:def __init__(self):self.result = []self.path = []def backtracking(self, nums, startIndex):self.result.append(self.path[:])# 终止条件可以忽略不写,因为for循环直接就退出了for i in range(startIndex, len(nums)):if i > startIndex and nums[i] == nums[i-1]:continueself.path.append(nums[i])self.backtracking(nums, i+1)self.path.pop()def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:# 需要先排序nums.sort()self.backtracking(nums, 0)return self.result

相关文章:

代码随想录算法训练营day27 | 93.复原IP地址、78.子集、90.子集II

93.复原IP地址 和C不同&#xff0c;使用列表存储已经分割的数据&#xff0c;而不是直接操作字符串。为了使用这个列表搞了老久&#xff0c;主要问题出在&#xff0c;在判断终止条件的时候&#xff0c;path也需要回溯一下 class Solution:def __init__(self):self.result []s…...

RuntimeError: CUDA out of memory.【多种场景下的解决方案】

RuntimeError: CUDA out of memory.【多种场景下的解决方案】 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;【Matplotlib之旅&#xff1a;零基础精通数据可视化】 &#x1f3c6;&#x1f3c6;关注博主&#xff0c;随时获取更多关于深度学…...

LeetCode刷题| Leetcode 45. 跳跃游戏,1190. 反转每对括号间的子串,781. 森林中的兔子,739. 每日温度

45. 跳跃游戏 题目链接&#xff1a; 45. 跳跃游戏 II - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;这道题思路不难记&#xff0c;遍历数组每个位置&#xff0c;更新下一次的范围&#xff0c;当当前位置已经在当前范围之外时&#xff0c;步数一定得加一&#xff…...

Redis(03)——发布订阅

基础命令 基于频道 publish channel message&#xff1a;将信号发送到指定的频道pubsub subcommand [argument [argyment]]&#xff1a;查看订阅或发布系统状态subscribe channel [channel]&#xff1a;订阅一个或多个频道的信息unsubscribe [channel [channel]]&#xff1a;退…...

⭐北邮复试刷题LCR 034. 验证外星语词典__哈希思想 (力扣119经典题变种挑战)

LCR 034. 验证外星语词典 某种外星语也使用英文小写字母&#xff0c;但可能顺序 order 不同。字母表的顺序&#xff08;order&#xff09;是一些小写字母的排列。 给定一组用外星语书写的单词 words&#xff0c;以及其字母表的顺序 order&#xff0c;只有当给定的单词在这种外…...

ECMAScript 6+ 新特性 ( 二 )

2.12. class类 ES6 提供了更接近传统语言的写法&#xff0c;引入了 Class&#xff08;类&#xff09;这个概念&#xff0c;作为对象的模板。通过 class 关键字&#xff0c;可以定义类。 ES6 的 class 可以看作只是一个语法糖&#xff0c;它的绝大部分功能ES5 都可以做到&…...

JS游戏项目合集【附源码】

文章目录 一&#xff1a;迷宫小游戏二&#xff1a;俄罗斯方块三&#xff1a;压扁小鸟 一&#xff1a;迷宫小游戏 【迷宫游戏】是一款基于HTML5技术开发的游戏&#xff0c;玩法简单。玩家需要在一个迷宫中找到出口并成功逃脱&#xff0c;本项目还有自动寻路&#xff08;Track&a…...

React中hooks使用限制及保存函数组件状态

React Hooks 的限制主要有两条&#xff1a; 不要在循环、条件或嵌套函数中调用 Hook&#xff1b; 在 React 的函数组件中调用 Hook。 首先&#xff0c;Hooks是一个对象&#xff0c;大致结构如下&#xff1a; const hook: Hook {memoizedState: null,baseState: null,baseQ…...

用git命令来上传项目到GitHub我自己的仓库

目录 在GitHub上创建仓库并使用git命令上传到仓库的步骤如下&#xff1a; 其他操作 怎么退出git/COMMIT_EDITMSG [unix] 相关报错 error: src refspec main does not match any error: failed to push some refs to https://github.com/Liu22Jun16Liang/MyQt error: fail…...

.NET有哪些微服务框架

1.概述 想要对.net的微服务方案进行一下调查&#xff0c;看有什么可选的方案和框架&#xff0c;与spring clound相比.net 创建微服务是相对较麻烦的。 ID名称说明1Service FabricSteeltoe是帮助.NET开发的服务接入Spring Cloud技术栈的官方支持工具。也就是说&#xff0c;微服…...

uniapp中打开蓝牙需要哪些权限

在uniApp中进行蓝牙连接&#xff0c;需要获取以下权限&#xff1a; 蓝牙权限&#xff1a;用于扫描和连接蓝牙设备。定位权限&#xff1a;用于获取设备的位置信息&#xff0c;以便确定设备与蓝牙设备之间的距离。存储权限&#xff1a;用于读取和写入与蓝牙设备相关的数据。 获…...

virtualbox虚拟机运行中断,启动报错“获取 VirtualBox COM 对象失败”

文章目录 问题现象排查解决总结 问题现象 2月7日下午四点多&#xff0c;我已经休假了&#xff0c;某县的客户运维方打来电话&#xff0c;说平台挂了&#xff0c;无法访问客户是提供的一台Windows server机器部署平台&#xff0c;是使用virtualbox工具安装的CentOS7.9虚拟机和运…...

【JVM篇】什么是运行时数据区

文章目录 &#x1f354;什么是运行时数据区⭐程序计数器⭐栈&#x1f50e;Java虚拟机栈&#x1f388;栈帧的内容 &#x1f50e;本地方法栈 ⭐堆⭐方法区 &#x1f354;什么是运行时数据区 运行时数据区指的是jvm所管理的内存区域&#xff0c;其中分为两大类 线程共享&#xf…...

Jetpack 之Glance+Compose实现一个小组件

Glance&#xff0c;官方对其解释是使用 Jetpack Compose 样式的 API 构建远程 Surface 的布局&#xff0c;通俗的讲就是使用Compose风格的API来搭建小插件布局&#xff0c;其最新版本是2022年2月23日更新的1.0.0-alpha03。众所周知&#xff0c;Compose样式的API与原生差别不小&…...

实时矢量搜索如何彻底改变各行各业?

实时分析技术已经巩固了其作为众多行业的基石这一地位。另外&#xff0c;生成式AI具有的魅力吸引了广泛的关注&#xff0c;创新的解决方案有望为从娱乐到医疗保健的各个行业领域提供前所未有的洞察力。使用生成式AI方法与众多实时分析技术的融合带来了显著的协同效应。它使组织…...

【Linux】指令 【scp】

scp 是一条用于安全复制文件的命令。 scp hadoop.tar.gz datanode:/software这条命令的含义是将本地的hadoop.tar.gz文件复制到远程主机datanode的/software目录下。 scp&#xff1a;这是Secure Copy的缩写&#xff0c;用于在主机之间安全地复制文件。hadoop.tar.gz&#xff…...

文件IO,目录IO的学习

一&#xff0c;头文件的添加 #ifndef _HEAD_H_ //防止重新定义宏 #define _HEAD_H_#include<stdio.h> #include<sys/stat.h> #include<sys/types.h> #include<fcntl.h> #include<unistd.h> #include<string.h>#endif…...

leetcode(动态规划)53.最大子数组和(C++详细解释)DAY12

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一个连续部分。 示例 提示 2.解答思…...

BUGKU-WEB bp

题目描述 题目截图如下&#xff1a; 进入场景看看&#xff1a; 解题思路 提示说&#xff1a;弱密码top1000&#xff1f;z???(爆破?)先看看源码有没有提示 相关工具 Burp Suit 爆破top1000字典&#xff0c;点击下载 解题步骤 随便测试账号密码admin、admin 得到提…...

代码的复用——Mixin使用例子

Mixin&#xff08;混入&#xff09;是一种在Sass和Vue.js等框架中常用的技术&#xff0c;用于分发和重用代码。以下是Sass和Vue.js中Mixin的使用举例。 在Sass中&#xff0c;Mixin允许你定义可以在整个样式表中重复使用的样式。以下是一个Sass中Mixin的使用例子&#xff1a; …...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区&#xff08;Partitioning&#xff09;是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分&#xff08;分区&#xff09;可以独立存储、管理和优化&#xff0c;…...