Leetcode每日一题 1487. 保证文件名唯一
Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法......感兴趣就关注我吧!你定不会失望。
🌈个人主页:主页链接
🌈算法专栏:专栏链接
我会一直往里填充内容哒!
🌈LeetCode专栏:专栏链接
目前在刷初级算法的LeetBook 。若每日一题当中有力所能及的题目,也会当天做完发出
🌈代码仓库:Gitee链接
🌈点击关注=收获更多优质内容🌈
考试、项目周终于结束了啊!!!!接下来我会好好更文,准备今年四月蓝桥杯省赛!
这道题并不难,写这篇题解的目的在于,复习一下部分stl库。
题目:
给你一个长度为
n
的字符串数组names
。你将会在文件系统中创建n
个文件夹:在第i
分钟,新建名为names[i]
的文件夹。由于两个文件 不能 共享相同的文件名,因此如果新建文件夹使用的文件名已经被占用,系统会以
(k)
的形式为新文件夹的文件名添加后缀,其中k
是能保证文件名唯一的 最小正整数 。返回长度为
n
的字符串数组,其中ans[i]
是创建第i
个文件夹时系统分配给该文件夹的实际名称。输入:names = ["pes","fifa","gta","pes(2019)"] 输出:["pes","fifa","gta","pes(2019)"] 解释:文件系统将会这样创建文件名: "pes" --> 之前未分配,仍为 "pes" "fifa" --> 之前未分配,仍为 "fifa" "gta" --> 之前未分配,仍为 "gta" "pes(2019)" --> 之前未分配,仍为 "pes(2019)"输入:names = ["gta","gta(1)","gta","avalon"] 输出:["gta","gta(1)","gta(2)","avalon"] 解释:文件系统将会这样创建文件名: "gta" --> 之前未分配,仍为 "gta" "gta(1)" --> 之前未分配,仍为 "gta(1)" "gta" --> 文件名被占用,系统为该名称添加后缀 (k),由于 "gta(1)" 也被占用,所以 k = 2 。实际创建的文件名为 "gta(2)" 。 "avalon" --> 之前未分配,仍为 "avalon"输入:names = ["onepiece","onepiece(1)","onepiece(2)","onepiece(3)","onepiece"] 输出:["onepiece","onepiece(1)","onepiece(2)","onepiece(3)","onepiece(4)"] 解释:当创建最后一个文件夹时,最小的正有效 k 为 4 ,文件名变为 "onepiece(4)"。
白话讲解:
非常的简单,题目给定一串名字,要做的就是若没有重复的名字,则直接输出,若有,则加入后缀(1)、(2).....直到不重复后输出,但没有双重后缀,例如:a(1).txt重复,则输出a(2).txt而不是a(1)(1).txt .
题解:
不重复则..重复则...,这样一看就很容易想到用hash来做,而我们用unordered_map来做,相比于map,他索引效率更高.
首先定义格式函数,输出规定的字符格式,to_string(k)是将k转成字符表达.
之后遍历题给数组names.每遍历一次,就将其hash值加1,若hash值为1,则说明其是第一次出现,可以直接放到答案容器中.
若不为1,则搜寻hash中此时已经出现了多少次.若已经出现3次:a a(1) a(2),则传入2(为什么要传入k-1呢?因为假设gta gta出现了两次 第二个gta应该命名为gta(1),而不是gta(2))
到格式函数中,判断其返回值在hash中是否出现过,若没出现过则存入答案数组,存入map中
若出现过则继续重复上述步骤.
代码实现:
#include<iostream>
#include<string>
#include<vector>
#include<unordered_map>
using namespace std;
class Solution {public:string to(string a,int k){return a+='('+to_string(k)+')';}vector<string> getFolderNames(vector<string>& names) {unordered_map<string, int>map;vector<string>ans;for(const auto &name:names){map[name]++;if(map[name]==1){ans.push_back(name);}else {int k=map[name];while(map[to(name, k-1)]){k++;}ans.push_back(to(name,k-1));map[to(name,k-1)]++;} }return ans;}};
完结撒花:
🌈本篇博客的内容【Leetcode每日一题 1487. 保证文件名唯一】已经结束。
🌈若对你有些许帮助,可以点赞、关注、评论支持下博主,你的支持将是我前进路上最大的动力。
🌈若以上内容有任何问题,欢迎在评论区指出。若对以上内容有任何不解,都可私信评论询问。
🌈诸君,山顶见!
相关文章:
Leetcode每日一题 1487. 保证文件名唯一
Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…...
Linux常用命令——lsusb命令
在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) lsusb 显示本机的USB设备列表信息 补充说明 lsusb命令用于显示本机的USB设备列表,以及USB设备的详细信息。 lsusb命令是一个学习USB驱动开发,认识USB设备的助手,推荐大家使用…...
Python——我愿称之为最简单的语言
Python——我愿称之为最简单的语言开发工具基础语法变量和数据类型列表和元组字典if语句while语句函数类文件与异常测试代码参考书籍:《python编程从入门到实践》 开发工具 python编程环境分为两个部分:python解释器和文本编辑器。运行.py文件时&#…...
java.io.IOException: Broken pipe
1、问题出现的场景 线上环境,拉取对账单,走的接口的形式,当天单量比较大,就出现了,拉取订单超时,报了个错java.io.IOException: Broken pipe。 2、解决方案 我们设置的超时时间是100S,由于当…...
Python——列表排序和赋值
(1)列表排序: 列表排序方法 ls.sort() 对列表ls 中的数据在原地进行排序 ls [13, 5, 73, 4, 9] ls.sort()ls.sort(reverseFalse) 默认升序,reverseTrue,降序 ls [13, 5, 73, 4, 9] ls.sort(reverseTrue)key指定排序时…...
python+pytest接口自动化(7)-cookie绕过登录(保持登录状态)
在编写接口自动化测试用例或其他脚本的过程中,经常会遇到需要绕过用户名/密码或验证码登录,去请求接口的情况,一是因为有时验证码会比较复杂,比如有些图形验证码,难以通过接口的方式去处理;再者,…...
【连接池】什么是HikariCP?HikariCP 解决了哪些问题?为什么要使用 HikariCP?
文章目录什么是连接池什么是HikariCPHikariCP 解决了哪些问题?为什么要使用 HikariCP?HikariCP 的使用Maven支持数据库什么是连接池 数据库连接池负责分配、管理和释放数据库的连接。 数据库连接复用:重复使用现有的数据库长连接࿰…...
Tapdata Cloud 基础课:新功能详解之「微信告警」,更及时的告警通知渠道
【前言】作为中国的 “Fivetran/Airbyte”, Tapdata 是一个以低延迟数据移动为核心优势构建的现代数据平台,内置 60 数据连接器,拥有稳定的实时采集和传输能力、秒级响应的数据实时计算能力、稳定易用的数据实时服务能力,以及低代码可视化操作…...
【巨人的肩膀】JAVA面试总结(四)
💪、JVM 目录💪、JVM1、说一下JVM的主要组成部分及其作用2、什么是JVM内存结构(谈谈对运行时数据区的理解)3、堆和栈的区别是什么4、堆中存什么?栈中存什么?5、为什么不把基本类型放堆中呢?6、为…...
攒了一冬的甜,米易枇杷借力新电商走出川西大山
“绿暗初迎夏,红残不及春。魏花非老伴,卢橘是乡人。”苏轼文中的卢橘,就是枇杷,在苏轼看来,相较于姚黄魏紫,来自故乡四川的枇杷更为亲近。 四川省攀枝花市米易县是全国枇杷早熟产区之一,得益于…...
python-测试相关基础知识-补充
文章目录 1.面向对象1.1 基础概念1.2 面向对象关键字1.2.1 class关键字1.2.2 __init__初始化方法1.2.3 __del__销毁方法1.2.4 __str__输出字符串方法1.3 面向对象三大特点1.3.1 封装1.3.2 继承1.3.3 多态1.4 类属性和类方法1.5 静态方法2.文件操作2.1 文件基本操作2.2 按行读取…...
论文推荐:ScoreGrad,基于能量模型的时间序列预测
能量模型(Energy-based model)是一种以自监督方式执行的生成式模型,近年来受到了很多关注。本文将介绍ScoreGrad:基于连续能量生成模型的多变量概率时间序列预测。如果你对时间序列预测感兴趣,推荐继续阅读本文。 为什…...
RabbitMq(具体怎么用,看这一篇即可)
RabbitMq汇总1.RabbitMq的传统实现方式2.SpringAMQP简化RabbitMq开发2.1 基本消息队列(BasicQueue)2.2 工作消息队列(WorkQueue)2.3 发布订阅 -- 广播(Fanout)2.4 发布订阅 -- 路由(Direct&…...
第九届蓝桥杯省赛 C++ A/B组 - 全球变暖
✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:蓝桥杯题解集合 📝原题地址:全球变暖 📣专栏定位:为想参加蓝桥杯的小伙伴整理常考算法题解,祝大家…...
Leetcode.2359 找到离给定两个节点最近的节点
题目链接 Leetcode.2359 找到离给定两个节点最近的节点 Rating : 1715 题目描述 给你一个 n个节点的 有向图 ,节点编号为 0到 n - 1,每个节点 至多 有一条出边。 有向图用大小为 n下标从 0开始的数组 edges表示,表示节点 i有一条…...
DCDC/LDO Auto-Discharge
1、概念 When using a capacitor with large capacity value in VOUT side, the VOUT pin voltage might not immediately fall to the ground level when the EN(CE,CONTROL) pin is switched from the active mode to the standby mode. By adding N-channel transistor to …...
linux 中的log
linux 中的log 由于内核的特殊性,我们不能使用常规的方法查看内核的信息。下面介绍几种方法。 1 printk()打印内核消息。 2 管理内核内存的daemon(守护进程) Linux系统当中最流行的日志记录器是Sysklogd,Sysklogd 日志记录器由…...
基于ubuntu的STM32嵌入式软件开发(四)——应用软件工程的修改、Makefile及编译脚本的编写
本文主要介绍基于标准库函数移植的STM32的应用软件工程的修改,主要涉及到文件内容修改、Makefile文件编写、编译脚本编写等内容,其中编译脚本是基于arm-none-eabi-gcc的交叉编译器撰写的。程序亲测可以正常编译,生成.bin和.hex的可烧录镜像文…...
MQTT协议分析
目录 一、前言 二、MQTT协议概述 概念 基本原理 MQTT协议的结构 MQTT的QoS机制 QoS 0:最多一次传输 QoS 1:至少一次传输 QoS 2:恰好一次传输 三、MQTT的应用场景 四、MQTT的优点和缺点 五、MQTT协议的实现 六、实战体验MQTT …...
基于树莓派4B设计的音视频播放器(从0开始)
一、前言 【1】功能总结 选择树莓派设计一款家庭影院系统,可以播放本地视频、网络视频直播、游戏直播、娱乐直播、本地音乐、网络音乐,当做FM网络收音机。 软件采用Qt设计、播放器引擎采用ffmpeg。 当前的硬件选择的是树莓派4B,烧写官方系统,完成最终的开发。 本篇文章主…...
MSF手机渗透实验(未成功)(CVE-2019-2215 Binder UA)
1. 前言 最近想利用metasploit对手机进行依次渗透实验。 通过查看最近三年的安卓漏洞,我对CVE-2019-2215这个漏洞很感兴趣。 幸运的是,metasploit里就有这个漏洞的攻击payload,于是我就开始试试了。 msf6 > search binderMatching Mod…...
系列十二、MySQL管理
一、系统数据库 Mysql数据库安装完成后,自带了一下四个数据库,具体作用如下:二、常用工具 2.1、mysql 2.1.1、概述 该mysql不是指mysql服务,而是指mysql的客户端工具。 2.1.2、语法 # 语法 : mysql [options] [dat…...
[游戏架构] 有限状态机的实际应用
什么是有限状态机 有限状态机(Finite State Machine,简称FSM)是一种常用的计算机科学中的建模工具,用于描述由离散状态和状态之间的转换组成的系统。它主要由一个有限的状态集合、一个初始状态、一个输入事件集合、状态之间的转换…...
【站外SEO】如何利用外部链接来提高你的网站排名
随着互联网的快速发展,越来越多的企业开始注重SEO优化,以提升自己的网站排名,增加流量和曝光度。 而站外SEO作为SEO的重要组成部分,对于提升网站排名具有不可忽视的作用。 站外SEO主要是通过外部链接来提高网站的排名。而GPB外链…...
OSCP-课外4(修复web访问、Mysql UDF提权)
目录 难度 一、主机发现与端口扫描 二、Web信息收集 站点目录扫描 搜索phpmailer的漏...
深信服面经---云计算方向(附问题知识点解析)
深信服面经---云计算高级开发一、一面问题概览二、实操相关三、复盘对问题答案进行整理(查漏补缺)3.1、go语言简单了解3.2、项目中成就感最大或挑战最大的地方3.3、项目问题---协议头引入之后,包的大小增加了多少3.4、如何建立缓存3.5、cache…...
MySQL面试题-基础篇
目录 前言 数据库基础 1.什么是关系型数据库和非关系型数据库? 2.什么是 SQL? 3.MySQL 有什么优点? 4.MySQL 的基础架构? 存储引擎 1.MySQL 支持哪些存储引擎?默认使用哪个? 2.MySQL 存储引擎架构了解吗&…...
高通平台开发系列讲解(摄像头篇)QCM6490 上摄像头驱动开发
文章目录 一、Camera 硬件简介二、内核驱动移植2.1、确定设备树2.2、增加 camera 节点2.3、配置相关 GPIO沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍 qcm6490 摄像头驱动开发。 一、Camera 硬件简介 摄像头连接器一般会包含 Mipi 信号、mclk、供电、re…...
MOV压敏电阻应用推荐及选型要点说明
ESD器件-MOV压敏电阻是一种非线性的电阻元器件产品,具有瞬态电压抑制功能,能够吸收电路中多余的电流,可保护一些敏感电路及其他电子产品设备的电路不受ESD、雷击瞬态浪涌电流的危害。对于它的一些应用范围,优恩小编在这里举例说明…...
Pytorch学习笔记(8):正则化(L1、L2、Dropout)与归一化(BN、LN、IN、GN)
目录 一、正则化之weight_decay(L2正则) 1.1 正则化及相关概念 1.2 正则化策略(L1、L2) (1)L1正则化 (2)L2正则化 1.3 L2正则项——weight_decay 二、正则化之Dropout 2.1 Dr…...
做暧暧视频网站免费/怎么自己刷推广链接
自20年前TIOBE指数开始以来,Java和C首次不再占据前两位。 C仍然是第一,但现在是Python占据了第二的位置。有人说,Python最近的流行是由于数据挖掘、人工智能和数值计算等领域的蓬勃发展,但我有自己的看法。我相信Python的流行与一般需求有关…...
成都o2o网站建设/谷歌自然排名优化
往期精选● 架构师高并发高性能分布式教程(4000G)● 39阶段精品云计算大数据实战视频教程● 互联网技术干货视频教程大全【菜单为准】● 2017年8月最新Intellij IDEA全套视频教程● 程序员如何制作高质量的简历【视频简历】● 两套大型电商实战项目 ● 200本经典编程相关…...
别人能打开的网站我打不开/企业网站建设的步骤
EDA365欢迎您登录!您需要 登录 才可以下载或查看,没有帐号?注册x3 K1 ~ W3 V6 w6 h w) B1 I. C$ X在概率论和信息论中,两个随机变量的互信息(Mutual Information,简称MI)或转移信息(transinformation)是变量间相互依赖…...
校园网网站分页党群建设/个人微信管理系统
在网上找到了一句得到删除数据库中所有外键约束的语句的sql语句 但是发现这只是一句查询,要执行的话,还得复制出来执行,比较麻烦 于是写了个sp来自动执行,比较方便 代码如下: Sql代码 CREATE PROCEDURE sp_drop_all_f…...
营销型网站建设 课程/市场推广方式有哪几种
By Pnig0s1992 Mysql的编码问题很恶心 如果拿站的时候遇到Root权限还好说 遵守三编码一致原则就可以:连接编码数据库编码表编码 再详细点儿还可以字段编码 而大部分情况我们得到的帐号都是非Root 没有更改编码的权限 这时候如果目标的库和表的编码统一还好 直接更改…...
wordpress网站怎么百度的到/网站流量排名查询工具
本文原址:http://www.hbzxr.com/web/36/2027736-1138928.htmljava this和super关键字 有什么作用成员函数中定义了和成员变量中相同的变量时,引用成员变量要用this. 构造函数中调用同一个类的其他构造函数时用this 子类中覆盖了于父类成员变量或成员函数…...