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

代码随想录训练营Day20 | 93.复原IP地址 - 78.子集 - 90.子集II

93.复原IP地址

  • 题目链接:93.复原IP地址
  • 思路:
    1. 做法和分割回文字符串那题类似,是对字符串进行切割;
    2. 本题需要多几个条件,就是每次回溯字符串的长度最多三位,字符串对应的数值必须 在[0, 255]之间,并且不能有前导0的存在,并且只能被切割成4个字符串
  • 代码:
class Solution {
public:vector<string> restoreIpAddresses(string s) {vector<string> ans;vector<string> tmp;if(s.size() > 12) // 字符串长度最大为12return {};int n = s.size();auto dfs = [&](auto&& dfs, int k) {if(k < n && tmp.size() == 4) // 切割了四个数,但是字符串还剩下,不符合return;if(k == n && tmp.size() == 4) { // 符合条件stringstream ss; // 将字符串数组转化为ip地址for(int i = 0; i < 4; ++i) {ss << tmp[i];if(i != 3) ss << '.';}  ans.push_back(ss.str());}string str = "";for(int i = k; i < n && i < k + 3; ++i) {str += s[i];if(stoi(str) <= 255) { // 在[0. 255]之前tmp.push_back(str);dfs(dfs, i+1);tmp.pop_back();}if(s[k] == '0')   // 去除前导0break;}};dfs(dfs, 0);return ans;}
};

78.子集

  • 题目链接:78.子集
  • 思路:本题较为简单,每次一个数没有被选择的数,即可组成一个集合,将集合放入到答案中即可
  • 代码:
class Solution {
public:vector<vector<int>> subsets(vector<int>& nums) {vector<vector<int>> ans;vector<int> tmp;int n = nums.size();auto dfs = [&](auto&& dfs, int i) {ans.push_back(tmp); // 记录集合if(i == n) {return;}for(int j = i; j < n; j++) {tmp.push_back(nums[j]); // 选一个数dfs(dfs, j+1);tmp.pop_back();}};dfs(dfs, 0);return ans;}
};

90.子集II

  • 题目链接:90.子集II
  • 思路:思路和子集那道题一样,不同的是这道题需要进行去重,相同数字,在一次回溯函数过程中只能被选择一次,需要进行去重,所以需要先排序
  • 代码:

class Solution {
public:vector<vector<int>> subsetsWithDup(vector<int>& nums) {vector<vector<int>> ans;vector<int> tmp;ranges::sort(nums);  // 数组排序,方便去重int n = nums.size();auto dfs = [&](auto&& dfs, int i) {ans.push_back(tmp);if(i == n) {return;}for(int j = i; j < n; j++) {if(j != i && nums[j] == nums[j-1]) // 去重continue;tmp.push_back(nums[j]);dfs(dfs, j+1);tmp.pop_back();}};dfs(dfs, 0);return ans;}
};

相关文章:

代码随想录训练营Day20 | 93.复原IP地址 - 78.子集 - 90.子集II

93.复原IP地址 题目链接&#xff1a;93.复原IP地址思路&#xff1a; 做法和分割回文字符串那题类似&#xff0c;是对字符串进行切割&#xff1b;本题需要多几个条件&#xff0c;就是每次回溯字符串的长度最多三位&#xff0c;字符串对应的数值必须 在[0, 255]之间&#xff0c;…...

[Meachines] [Medium] MonitorsThree SQLI+Cacti-CMS-RCE+Duplicati权限提升

信息收集 IP AddressOpening Ports10.10.11.30TCP:22&#xff0c;80 $ nmap -p- 10.10.11.30 --min-rate 1000 -sC -sV -Pn PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0) | …...

Elasticsearch专栏-4.es基本用法-查询api

es基本用法-查询api 说明查询所有某一字段匹配查询多字段查询bool查询范围查询精确查询正则匹配模糊查询结果处理 说明 es对数据的检索&#xff0c;总结下来就是两部分&#xff0c;即查询和处理。查询指的是查找符合条件的数据&#xff0c;包括查询所有、匹配查询、布尔查询、…...

jmeter基础04_设置外观和字体

1、设置外观 默认跟随系统风格&#xff0c;你可以试一试选择自己喜欢的风格。&#xff08;浅色模式/深色模式…&#xff09; 操作&#xff1a;菜单栏“选项” - “外观”&#xff0c;选择外观风格。 2、放缩显示比例&#xff08;重启后复原&#xff09; “选项” - “放大/缩小…...

重构代码之替换参数为显式方法

替换参数为显式方法 是一种重构技术&#xff0c;旨在通过替换方法参数来创建更清晰、更具可读性的代码。当一个方法包含标志性参数时&#xff0c;该方法的行为可能会根据参数的不同而发生改变。这样会导致方法的调用方式不够明确&#xff0c;因为调用者不一定能直观地知道每个参…...

三菱QD77MS定位模块速度限制功能

“速度限制功能”是控制中的指令速度超过“速度限制值”的情况下&#xff0c;将指令速度限制在“速度限制值”的设置范围内的功能。 [1]速度限制功能与各控制的关系 速度限制功能”与各控制的关系如下所示。 [3]速度限制功能的设置方法 使用“速度限制功能”时&#xff0c;在如…...

Axure PR 9 多级下拉选择器 设计交互

​ 大家好&#xff0c;我是大明同学。 Axure选择器是一种在交互设计中常用的组件&#xff0c;这期内容&#xff0c;我们来探讨Axure中多级下拉选择器设计与交互技巧。 下拉列表选择输入框元件 创建选择输入框所需的元件 1.在元件库中拖出一个矩形元件。 2.选中矩形元件&…...

Java基础使用②Java数据变量和类型+小知识点

目录 1. Java小知识点 1.1 Java注释 1.2 Java标识符命名 1.3 Java关键字 2. 字面常量和数据变量 2.1 字面常量 2.2 数据类型 3.变量 3.1 变量概念 3.2 语法格式 3.3 整型变量 3.4 浮点型变量 3.5 字符型变量 3.6 布尔型变量 3.7 类型转换 3.8 类型提升 4. 字符…...

从 HTTP 到 HTTPS 再到 HSTS:网站安全的演变与实践

近年来&#xff0c;随着域名劫持、信息泄漏等网络安全事件的频繁发生&#xff0c;网站安全变得越来越重要。这促使网络传输协议从 HTTP 发展到 HTTPS&#xff0c;再到 HSTS。本文将详细介绍这些协议的演变过程及其在实际应用中的重要性。 一、HTTP 协议 1.1 HTTP 简介 HTTP&…...

Qt的跨平台介绍

在实际开发中&#xff0c;Ubuntu 使用 Qt 编译并跨平台到 Windows 的场景并不算特别常见&#xff0c;但在一些特定情况下是非常有用的&#xff0c;尤其是在开发需要支持多个平台的跨平台应用时。这种方式的应用主要体现在以下几个方面&#xff1a; Linux 环境下开发 Windows 应…...

数据库DQL

DQL 语法 SELECT字段列表 FROM表名列表 WHERE条件列表 GROUP BY分组字段列表 HAVING分组后条件列表 ORDER BY排序字段列表 LIMIT分页参数 基本查询 查询多个字段 SELECT 字段1,字段2,字段3,... FROM 表名; SELECT * FROM 表名; 设置别名 SELECT 字段1 [AS 别名1],字段2 …...

Am I Isolated:一款安全态势基准测试工具

基于Rust的容器运行时扫描器作为一个容器运行&#xff0c;检测用户容器运行时隔离中的漏洞。 它还提供指导&#xff0c;帮助用户改善运行时环境&#xff0c;以提供更强的隔离保证。 容器的现状是它们并不包含&#xff08;隔离&#xff09;。 容器隔离的缺失在云原生环境中有…...

Unity性能优化 -- 性能分析工具

Stats窗口Profiler窗口Memory Profiler其他性能分析工具&#xff08;Physica Debugger 窗口&#xff0c;Import Activity 窗口&#xff0c;Code Coverage 窗口&#xff0c;Profile Analyzer 窗口&#xff0c;IMGUI Debugger 窗口&#xff09; Stats 统级数据窗口 game窗口 可…...

【微信小程序】基本语法

一、导入小程序 选择代码目录 项目配置文件 appid 当前小程序的 AppIDprojectname 当前小程序的项目名称 变更AppID&#xff08;视情况而定&#xff0c;如果没有开发权限时需要变更成个人的 AppID&#xff09; 二、模板语法 在页面中渲染数据时所用到的一系列语法叫做模板…...

go中的类型断言详解

在Go语言中&#xff0c;类型断言&#xff08;Type Assertion&#xff09;是一种将接口类型的变量转换为具体类型的机制。类型断言允许我们从接口类型的变量中提取出具体的值&#xff0c;以便访问具体类型的方法或属性。类型断言的语法如下&#xff1a; value, ok : interfaceV…...

vite构建的react程序放置图片

在 Vite 中&#xff0c;将图片放置在 public 文件夹中可以直接使用相对路径&#xff08;如 /logo.png&#xff09;的原因主要与 Vite 的构建和资源处理方式有关。以下是详细的解释&#xff1a; 1. 公共访问性 public 文件夹中的文件在构建过程中不会被 Vite 处理或哈希化。这…...

学习事件循环

本文内容由智谱清言产生。 什么是事件循环&#xff1f; 事件循环&#xff08;Event Loop&#xff09;是一个编程概念&#xff0c;特别是在异步编程和GUI&#xff08;图形用户界面&#xff09;应用程序中非常常见。它是用来处理和管理事件&#xff08;如用户输入、计时器事件、…...

终端NuShell git权限异常处理

使用nushell git,关联老的秘钥文件 D:\phpstudy_pro\WWW\xmh\backend|10-312> mkdir d:\Users\Administrator\.ssh PC-20240719ZOSM||2411063145840 D:\phpstudy_pro\WWW\xmh\backend|10-312> cp -r c:\U…...

Mybatis Plus 集成 PgSQL 指南

“哲学家们只是用不同的方式解释世界&#xff0c;而问题在于改变世界。” ——卡尔马克思 (Karl Marx) 解读&#xff1a;马克思强调了实践的重要性&#xff0c;主张哲学不仅要理解世界&#xff0c;更要致力于改造世界。 本文我们引入 Mybatis Plus 作为 ORM &#xff0c;并且使…...

Rust常用数据结构教程 Map

文章目录 一、Map类型1.HashMaphashMap的简单插入entry().or_insert()更新hashMap 2.什么时候用HashMap3.HashMap中的键 二、BTreeMap1.什么时候用BTreeMap2.BTreeMap中的键 参考 一、Map类型 键值对数据又称字典数据类型 主要有两种 HashMap - BTreeMap 1.HashMap HashM…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...