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

day-25 代码随想录算法训练营(19)回溯part02

216.组合总和|||

思路:和上题一样,差别在于多了总和,但是数字局限在1-9

17.电话号码的字母组合

思路:先纵向遍历第i位电话号码对于的字符串,再横向递归遍历下一位电话号码

93.复原IP地址

画图分析:

 思路一:

先横向遍历,限制遍历数最大为3(因为IP值最多为三位),并且起始位+3要小于字符串长度;
  • 判断当前切的字符串是否满足IP值,不满足的话下一个;
然后纵向递归,判断当前切的第几刀
  • 如果当前切的第四刀(以1开始,相当于分成四份),则进行判断添加,作为终止条件
  • 如果当前还没切到第四刀,则继续横向遍历
最后回溯,直接用resize覆盖掉当前遍历添加字符串的长度
class Solution {
public:vector<string>res;string mid;void backtrace(const string& s,int start,int curb){//start是开始的位置 curb是切割的次数if(curb==4){//cout<<123;if(s.size()-start>3) return;string mids=s.substr(start,s.size()-1);if(judge(mids)){mid+=mids;res.push_back(mid);mid.resize(mid.size()-mids.size());//回溯(覆盖当前添加的字符串)} return;   }for(int i=1;i<=3;i++){//横向遍历//cout<<i;if(start+i>s.size())//剩下的大于需要分配的break;string s1=s.substr(start,i);//第if(!judge(s1)) continue;mid+=s1;mid+=".";backtrace(s,start+i,curb+1);//纵向递归//cout<<mid;//回溯覆盖mid.resize(mid.size()-s1.size()-1);}}bool judge(string s){if(s.empty()) return false;if(s.size()>1 && s[0]=='0') return false;//排除0开头的字符串int num=stoi(s);return num>=0 && num<=255;}vector<string> restoreIpAddresses(string s) {backtrace(s,0,1);return res;}
};

相关文章:

day-25 代码随想录算法训练营(19)回溯part02

216.组合总和||| 思路&#xff1a;和上题一样&#xff0c;差别在于多了总和&#xff0c;但是数字局限在1-9 17.电话号码的字母组合 思路&#xff1a;先纵向遍历第i位电话号码对于的字符串&#xff0c;再横向递归遍历下一位电话号码 93.复原IP地址 画图分析&#xff1a; 思…...

PG逻辑备份与恢复

文章目录 创建测试数据pg_dump 备份pg_restore 恢复pg_restore 恢复并行备份的文件PG 只导出指定函数 创建测试数据 drop database if exists test; create database test ; \c test create table t1(id int primary key); create table t2(id serial primary key, name varch…...

图数据库_Neo4j和SpringBoot整合使用_实战创建明星关系图谱---Neo4j图数据库工作笔记0010

然后我们再来看一下这个明星关系图谱 可以看到这里 这个是原来的startRelation 我们可以写CQL去查询对应的关系 可以看到,首先查询出来以后,然后就可以去创建 我们可以把写的创建明星关系的CQL,拿到 springboot中去执行 可以看到,这里我们先写一个StarRelationRepository,然…...

Linux网络编程:Socket套接字编程(Server服务器 Client客户端)

文章目录&#xff1a; 一&#xff1a;定义和流程分析 1.定义 2.流程分析 3.网络字节序 二&#xff1a;相关函数 IP地址转换函数inet_pton inet_ntop&#xff08;本地字节序 网络字节序&#xff09; socket函数(创建一个套接字) bind函数(给socket绑定一个服务器地址结…...

Mac OS下应用Python+Selenium实现web自动化测试

在Mac环境下应用PythonSelenium实现web自动化测试 在这个过程中要注意两点&#xff1a; 1.在终端联网执行命令“sudo pip install –U selenium”如果失败了的话&#xff0c;可以尝试用命令“sudo easy_install selenium”来安装selenium; 2.安装好PyCharm后新建project&…...

每天一道leetcode:934. 最短的桥(图论中等广度优先遍历)

今日份题目&#xff1a; 给你一个大小为 n x n 的二元矩阵 grid &#xff0c;其中 1 表示陆地&#xff0c;0 表示水域。 岛 是由四面相连的 1 形成的一个最大组&#xff0c;即不会与非组内的任何其他 1 相连。grid 中 恰好存在两座岛 。 你可以将任意数量的 0 变为 1 &#…...

【学习日记】【FreeRTOS】FreeRTOS 移植到 STM32F103C8

前言 本文基于野火 FreeRTOS 教程&#xff0c;内容是关于 FreeRTOS 官方代码的移植的注意事项&#xff0c;并将野火例程中 STM32F103RC 代码移植到 STM32F103C8。 一、FreeRTOS V9.0.0 源码的获取 两个下载链接&#xff1a; 官 网 代码托管 二、源码文件夹内容简介 Source…...

Qt 屏幕偶发性失灵

项目场景: 基于NXP i.mx7的Qt应用层项目开发,通过goodix使用触摸屏,走i2c协议。 问题描述 触摸屏使用过程中意外卡死,现场分为多种: i2c总线传输错误,直观表现为触摸屏无效,任何与触摸屏挂接在同一总线上的i2c设备,均受到干扰,并且在传输过程中内核报错以下代码: G…...

如何在pycharm中指定GPU

如何在pycharm中指定GPU 作者:安静到无声 个人主页 目录 如何在pycharm中指定GPU打开编辑配置点击环境变量添加GPU配置信息推荐专栏在Pycharm运行程序的时候,有时候需要指定GPU,我们可以采用以下方式进行设置: 打开编辑配置 点击环境变量 添加GPU配置信息 添加名称:CU…...

C#判断字符串中有没有字母,正则表达式、IsLetter

要判断字符串中是否包含字母&#xff0c;可以使用正则表达式或者循环遍历字符串的方式。 方法一&#xff1a;使用正则表达式 using System.Text.RegularExpressions;string input "Hello123"; bool containsLetter Regex.IsMatch(input, "[a-zA-Z]");上…...

Jtti:Ubuntu怎么限制指定端口和IP访问

在 Ubuntu 系统中&#xff0c;可以使用防火墙规则来限制特定的端口和IP访问。常用的防火墙管理工具是 iptables&#xff0c;以下是使用 iptables 来限制指定端口和IP访问的步骤&#xff1a; 安装 iptables&#xff1a; 如果系统中没有安装 iptables&#xff0c;可以使用以下命…...

机器学习/深度学习需要掌握的linux基础命令

很多深度学习/机器学习/数据分析等领域&#xff08;或者说大多数在Python环境下进行操作的领域&#xff09;的初学者入门时是在Windows上进行学习&#xff0c;也得益于如Anaconda等工具把环境管理做的如此友善 但如果想在该领域继续深耕&#xff0c;一定会与Linux操作系统打交…...

C++11 std::async推荐使用 std::launch::async 模式

async真假多线程 std::launch::async真多线程 std::launch::async | std::launch::deferred可能多线程 std::launch::deferred假多线程 枚举变量说明 枚举定义 enum class launch {async 1, // 0b1deferred 2, // 0b10any async | def…...

没有使用springboot 单独使用spring-boot-starter-logging

如果您不使用Spring Boot框架&#xff0c;但想单独使用Spring Boot Starter Logging&#xff0c;您可以按照以下步骤进行&#xff1a; 1. 添加Maven依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boo…...

创建Azure资源锁

锁的介绍 在Azure中&#xff0c;资源锁是一种用于保护订阅、资源组或者单个资源的机制。它可以防止对受锁定的资源进行删除或修改操作&#xff0c;帮助确保资源的连续可用性和安全性。 Azure中的资源锁可以分为两种类型&#xff1a; 删除锁&#xff08;CanNotDelete&#xf…...

卷积神经网络教程 (CNN) – 使用 TensorFlow 在 Python 中开发图像分类器

在这篇博客中,让我们讨论什么是卷积神经网络 (CNN) 以及 卷积神经网络背后的架构——旨在解决 图像识别系统和分类问题。 卷积神经网络在图像和视频识别、推荐系统和自然语言处理方面有着广泛的应用。 目录 计算机如何读取图像? 为什么不是全连接网络?...

MyBatis XML映射处理CLOB和BLOB类型

Mybatis的MapperXML映射文件应该处理数据库字段类型为CLOB和BLOB类型的数据呢&#xff1f;首先我们先看下CLOB和BLOB这两种数据类型的介绍。 介绍 使用Mybatis时涉及到两种特殊类型的处理&#xff0c;分别是Blob&#xff08;Binary Large Object&#xff09;和Clob&#xff0…...

FPGA_学习_14_第一个自写模块的感悟和ila在线调试教程与技巧(寻找APD的击穿偏压)

前一篇博客我们提到了&#xff0c;如果要使用算法找到Vbr&#xff0c;通过寻找APD采集信号的噪声方差的剧变点去寻找Vbr是一个不错的方式。此功能的第一步是在FPGA中实现方差的计算&#xff0c;这个我们已经在上一篇博客中实现了。 继上一篇博客之后&#xff0c;感觉过了很久了…...

【2023新教程】树莓派定时自动拍照并上传腾讯云对象存储COS

1 换源 仅适用于Release date: May 3rd 2023、Debian version: 11 (bullseye)这个树莓派OS版本&#xff0c;其他版本不保证有效。 首先使用如下命令&#xff0c;查看自己树莓派的架构。 uname -a结果如下&#xff1a; 如果红圈处显示为aarch64&#xff0c;使用命令sudo na…...

校企合作谋发展 合作共赢谱新篇|云畅科技与湖南民族职业学院签订校企合作协议

产业是经济发展的重要引擎&#xff0c;人才是产业发展的重要资源。为积极探索软件人才培育新路径&#xff0c;共商政产学研协同新机制&#xff0c;8月8日&#xff0c;云畅科技与湖南省民族职业学院教育技术学院软件技术专业签订校企合作协议。 会上&#xff0c;学院副校长王志平…...

告别MATLAB命令行里的‘天书’:手把手教你用symdisp优雅展示LaTeX公式

MATLAB符号计算可视化革命&#xff1a;用symdisp实现LaTeX级公式渲染 在科研和工程计算领域&#xff0c;MATLAB的符号计算工具箱一直是数学推导的利器&#xff0c;但长期以来&#xff0c;命令行输出的公式展示方式让许多研究者头疼——密密麻麻的文本表达式不仅难以直观理解&am…...

独立开发者工具箱:模块化架构与全栈实践指南

1. 项目概述&#xff1a;一个独立开发者的工具箱 如果你是一个独立开发者&#xff0c;或者正在尝试构建自己的数字产品&#xff0c;那么你一定经历过这样的时刻&#xff1a;一个想法在脑海中成型&#xff0c;你迫不及待地想把它变成现实&#xff0c;但当你打开编辑器&#xff0…...

【CTF实战】从黑名单绕过到.htaccess:一次完整的文件上传漏洞利用剖析

1. 从文件上传失败开始的CTF挑战 第一次打开这个CTF靶机时&#xff0c;我遇到了一个让人哭笑不得的情况&#xff1a;上传一个完全正常的图片文件居然失败了。这就像你去餐厅点餐&#xff0c;服务员告诉你"我们这里不卖食物"一样荒谬。但正是这种反直觉的现象&#xf…...

西门子“工业软件驱动的数字孪生”模式

西门子&#xff08;Siemens&#xff09;的“工业软件驱动的数字孪生”模式是全球离散制造业&#xff08;如汽车、航空航天、电子&#xff09;公认的技术制高点。其核心逻辑不是简单的 3D 建模&#xff0c;而是“数物融合”&#xff0c;即利用完整的软件工具链在物理实体投产前&…...

基于VLLM与VoxCPM2的高并发TTS服务器部署与调优指南

1. 项目概述&#xff1a;uttera-tts-vllm&#xff0c;一个为高并发而生的TTS服务器如果你正在寻找一个能扛住高并发请求、支持实时语音克隆、并且完全自托管的文本转语音解决方案&#xff0c;那么uttera-tts-vllm绝对值得你花时间研究一下。这个项目本质上是一个基于 FastAPI 构…...

每天140万亿次“Token“在狂奔!这组数据背后,有人赚疯,有人焦虑到失眠

> 就在今天&#xff0c;你刷的每一条AI回复&#xff0c;都在创造历史。0101 你随口的一句话&#xff0c;正在"吃掉"一座超级计算机你有没有这种感觉——早上用豆包写了个周报&#xff0c;中午让Kimi帮你总结了一份PDF&#xff0c;下午在微信里让AI画了一张插画&am…...

开源技术如何驱动物联网创新:从硬件到软件的平民化革命

1. 物联网与开源&#xff1a;一场全民工程的序章十年前&#xff0c;如果有人告诉我&#xff0c;一个没有任何电子工程背景的艺术家&#xff0c;能自己动手做一个能联网、能自动浇花、还能在社交媒体上发照片的智能花盆&#xff0c;我大概会觉得他在讲科幻故事。但今天&#xff…...

ARM PMU性能监控架构与寄存器详解

1. ARM PMU性能监控架构概述 性能监控单元(Performance Monitoring Unit, PMU)是现代处理器中用于硬件级性能分析的关键模块。作为ARM架构的重要组成部分&#xff0c;PMU通过一组可编程计数器来记录处理器运行过程中发生的各类微架构事件&#xff0c;为系统性能分析和优化提供数…...

大模型上下文长度对Agent的影响:从4K到1M的质变

目录大模型上下文长度对Agent的影响&#xff1a;从4K到1M的质变引言&#xff1a;工作台革命一、上下文窗口演进史&#xff1a;从4K到1M的百倍跃迁1.1 时间线上的技术里程碑1.2 为什么2025年成为“百万Token元年”&#xff1f;二、长上下文的质变&#xff1a;Agent能力的三重跃迁…...

NotebookLM未公开的Obsidian插件桥接协议(内部文档泄露版),仅限前500名技术决策者获取

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM与Obsidian整合的架构全景图 NotebookLM&#xff08;Google 推出的 AI 原生研究助手&#xff09;与 Obsidian&#xff08;本地优先、双向链接的知识图谱工具&#xff09;的整合&#xff0c;正…...