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

【每日一题Day135】LC1487保证文件名唯一 | 哈希表

保证文件名唯一【LC1487】

给你一个长度为 n 的字符串数组 names 。你将会在文件系统中创建 n 个文件夹:在第 i 分钟,新建名为 names[i] 的文件夹。

由于两个文件 不能 共享相同的文件名,因此如果新建文件夹使用的文件名已经被占用,系统会以 (k) 的形式为新文件夹的文件名添加后缀,其中 k 是能保证文件名唯一的 最小正整数

返回长度为 n 的字符串数组,其中 ans[i] 是创建第 i 个文件夹时系统分配给该文件夹的实际名称。

  • 思路:

    使用哈希表统计每个文件名出现的次数,如果哈希表中未出现过该文件名,那么不需要添加后缀,将其直接放入哈希表中;如果哈希表中出现过该文件名,那么需要找到不存在与哈希表中的最小后缀k,那么新文件夹的文件名为file=names[i] + "(" + k + ")",然后在哈希表中更新names[i] 出现的次数和file

  • 实现

    class Solution {public String[] getFolderNames(String[] names) {int n = names.length;Map<String, Integer> map = new HashMap<>();String[] res = new String[n];for (int i = 0; i < n; i++){if (!map.containsKey(names[i])){map.put(names[i], 1);res[i] = names[i];}else{        int count = map.get(names[i]);while (map.containsKey(names[i] + "(" + count + ")")){count++;}String file = names[i] + "(" + count + ")";                res[i] = file;map.put(file, 1);map.put(names[i], count);}}return res;}
    }
    
    • 复杂度
      • 时间复杂度:O(∑i=0n−1mi)O(\sum^{n-1} _{i=0} m_i)O(i=0n1mi),mim_imi表示字符串names[i]names[i]names[i]的长度
      • 空间复杂度:O(∑i=0n−1mi)O(\sum^{n-1} _{i=0} m_i)O(i=0n1mi)

相关文章:

【每日一题Day135】LC1487保证文件名唯一 | 哈希表

保证文件名唯一【LC1487】 给你一个长度为 n 的字符串数组 names 。你将会在文件系统中创建 n 个文件夹&#xff1a;在第 i 分钟&#xff0c;新建名为 names[i] 的文件夹。 由于两个文件 不能 共享相同的文件名&#xff0c;因此如果新建文件夹使用的文件名已经被占用&#xff0…...

计算机系统的基本组成 第一节

一、计算机系统 计算机系统是指&#xff1a;电子数字通用、计算机系统 由硬件和软件两个子系统组成 硬件是保存和运行软件的物质基础 软件是指挥硬件完成预期功能的智力部分 重点&#xff1a; 计算机系统部件 五个 1、数据运算部件&#xff1a;完成对数据的运算处理功能…...

Scrapy爬虫框架入门

Scrapy是Python开发的一个非常流行的网络爬虫框架&#xff0c;可以用来抓取Web站点并从页面中提取结构化的数据&#xff0c;被广泛的用于数据挖掘、数据监测和自动化测试等领域。下图展示了Scrapy的基本架构&#xff0c;其中包含了主要组件和系统的数据处理流程&#xff08;图中…...

最新使用nvm控制node版本步骤

一、完全卸载已经安装的node、和环境变量 ①、打开控制面板的应用与功能&#xff0c;搜索node&#xff0c;点击卸载 ②、打开环境变量&#xff0c;将node相关的所有配置清除 ③、打开命令行工具&#xff0c;输入node-v&#xff0c;没有版本号则卸载成功 二、下载nvm安装包 ①…...

Linux内核4.14版本——drm框架分析(1)——drm简介

目录 1. DRM简介&#xff08;Direct Rendering Manager&#xff09; 1.1 DRM发展历史 1.2 DRM架构对比FB架构优势 1.3 DRM图形显示框架 1.4 DRM图形显示框架涉及元素 1.4.1 DRM Framebuffer 1.4.2 CRTC 1.4.3 Encoder 1.4.4 Connector 1.4.5 Bridge 1.4.6 Panel 1.4.…...

Google的一道经典面试题 - 767. 重构字符串

文章目录Google的一道经典面试题 - 767. 重构字符串767. 重构字符串1054. 距离相等的条形码结论Google的一道经典面试题 - 767. 重构字符串 767. 重构字符串 题目链接&#xff1a;767. 重构字符串 题目大意&#xff1a;给定一个字符串 s &#xff0c;检查是否能重新排布其中的…...

E8-公共选择框相关的表

起因 昨天同事和我说&#xff0c;要在一个表单里加一组可选项。于是我去了公共选择框维护。这时候才发了这么个问题&#xff0c;前几天我在本机的测试环境里做的流程&#xff0c;导入到我们的生产环境里&#xff0c;表单里所用到的共公选择框的选项都在&#xff0c;在表单里是…...

再学C语言41:变长数组(VLA)

处理二维数组的函数&#xff1a;数组的行可以在函数调用时传递&#xff0c;但是数组的列只能被预置在函数内部 示例代码&#xff1a; #define COLS 4 int sum(int arr[][COLS], int rows) {int r;int c;int temp 0;for(r 0; r < rows; r){for(c 0; c < COLS; c){tem…...

物联网WEB大屏数据可视化

最近了解WEB大屏显示。一般像嵌入式这类的&#xff0c;MQTT协议会走的多一些&#xff0c;走订阅和发布的策略&#xff0c;网上走了一圈之后&#xff0c;目前有几个实现方案。这里对比一下几个物联网协议&#xff0c;相对而言MQTT更合适物联网&#xff0c;其它几个协议不是干这个…...

新:DlhSoft Gantt Chart for WPF Crack

用于 Silverlight/WPF 4.3.48 的 DlhSoft 甘特图灯光库 改进甘特图、网络图和 PERT 图表组件的 PERT 关键路径算法。2023 年 3 月 2 日 - 17:09新版本特征 改进了甘特图、网络图和 PERT 图表组件的 PERT 关键路径算法。Silverlight/WPF 标准版的 DlhSoft 甘特图灯光库 DlhSoft …...

C++基础(一)—— C++概述、C++对C的扩展(作用域、struct类型、引用、内联函数、函数默认参数、函数占位参数、函数重载)

1. C概述1.1 c简介“c”中的来自于c语言中的递增运算符&#xff0c;该运算符将变量加1。c起初也叫”c withclsss”.通过名称表明&#xff0c;c是对C的扩展&#xff0c;因此c是c语言的超集&#xff0c;这意味着任何有效的c程序都是有效的c程序。c程序可以使用已有的c程序库。为什…...

Rust学习总结之if,while,loop,for使用

目录 一&#xff1a;if的使用 二&#xff1a;while的使用 三&#xff1a;loop的使用 四&#xff1a;for的使用 本文总结的四种语句&#xff08;if&#xff0c;while&#xff0c;loop&#xff0c;for&#xff09;除了loop&#xff0c;其他的三个在C语言或者Python中都是常见…...

Java知识复习(十一)RabbitMQ

1、RabbitMQ简介 RabbitMQ 是采用 Erlang 语言实现 AMQP(Advanced Message Queuing Protocol&#xff0c;高级消息队列协议&#xff09;的消息中间件 2、RabbitMQ核心概念 RabbitMQ 整体上是一个生产者与消费者模型&#xff0c;主要负责接收、存储和转发消息 3、Producer和…...

thinkphp图片压缩类

<?php namespace app\lib; /** * 图片压缩类&#xff1a;通过缩放来压缩。 * 如果要保持源图比例&#xff0c;把参数$percent保持为1即可。 * 即使原比例压缩&#xff0c;也可大幅度缩小。数码相机4M图片。也可以缩为700KB左右。如果缩小比例&#xff0c;则体积会更小。…...

如何将图数据库应用于电影智能推荐

导读 电影&#xff0c;是一种结合视觉与听觉的现代艺术。如今&#xff0c;电影已不单是人们娱乐消遣的生活方式&#xff0c;也逐渐成为国家文化软实力的重要标志之一。据有关数据统计&#xff0c;2021年中国影视行业市场规模达2349亿元&#xff0c;同比增长23.2%&#xff0c;预…...

CSS实现动画效果的菜单收起展开图标,html实现动画效果的箭头

效果 实现代码 此处JS代码引入了jquery <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><style>.menu-icon{position: absolute;left: 20%;top: 30%;transition: all .3s;}.menu-icon:before, .menu…...

大数据平台小结

搭建大数据平台启动流程1、启动Nginx服务&#xff08;在bdp-web-mysql服务中&#xff09;cd /usr/local/nginx/# 启动Nginx ./sbin/nginx# 查看端口是否存在 netstat -tunlp|grep 200012、启动zookeeper&#xff08;在bdp-executor-realtime123&#xff09;cd /app/bdp/apache-…...

力扣-139单词拆分

力扣-139单词拆分 1、题目 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 示例 1&#xff1a; 输入: s "…...

图机器学习-图神经网络

图神经网络 前面讲了图机器学习的一些传统方法&#xff0c;现在正式进入到课程的核心部分&#xff1a;图神经网络。 Design of GNN 那么图神经网络和我们之前接触的一些深度神经网络有什么不同呢&#xff1f; 对于别的类型的神经网络&#xff0c;往往我们都是处理一些类似网…...

配置Airbyte资源限制

资源限制有三种不同的级别配置&#xff1a;Instance-wide - 应用到Airbyte实例创建的Sync Job的所有容器上。Connector-specific - 应用到Airbyte实例创建的Sync Job的所有指定类型连接器的容器上Connection-specific - 应用到Airbyte实例创建的Sync Job的所有指定管道的容器上…...

【Python MCP服务器开发终极模板】:20年架构师亲授源码级解析与高并发优化实战

第一章&#xff1a;Python MCP服务器开发模板概览与核心设计哲学Python MCP&#xff08;Model-Controller-Protocol&#xff09;服务器开发模板是一套面向协议驱动、可插拔架构的轻量级服务框架&#xff0c;专为构建高内聚、低耦合的模型交互后端而设计。其核心不依赖于特定Web…...

OpenAPI状态机建模指南:用有限状态机设计RESTful API的终极方法 [特殊字符]

OpenAPI状态机建模指南&#xff1a;用有限状态机设计RESTful API的终极方法 &#x1f680; 【免费下载链接】OpenAPI-Specification The OpenAPI Specification Repository 项目地址: https://gitcode.com/gh_mirrors/op/OpenAPI-Specification OpenAPI Specification 是…...

QuickBMS深度解析:游戏资源逆向工程与批量处理技术实践

QuickBMS深度解析&#xff1a;游戏资源逆向工程与批量处理技术实践 【免费下载链接】QuickBMS QuickBMS by aluigi - Github Mirror 项目地址: https://gitcode.com/gh_mirrors/qui/QuickBMS 作为游戏逆向工程领域的瑞士军刀&#xff0c;QuickBMS以其卓越的文件格式解析…...

ANSYS模态分析后,如何用MATLAB把导出的HB格式刚度矩阵变回普通矩阵?(附完整命令流)

ANSYS模态分析后HB格式刚度矩阵的MATLAB转换全流程解析 在结构动力学和有限元分析领域&#xff0c;ANSYS与MATLAB的协同工作已经成为科研人员和工程师的标配工作流。模态分析作为结构动态特性研究的基础&#xff0c;其刚度矩阵的导出与后续处理尤为关键。然而&#xff0c;当您从…...

音乐标签编辑器:让本地音乐元数据管理效率提升90%的开源工具

音乐标签编辑器&#xff1a;让本地音乐元数据管理效率提升90%的开源工具 【免费下载链接】music-tag-web 音乐标签编辑器&#xff0c;可编辑本地音乐文件的元数据&#xff08;Editable local music file metadata.&#xff09; 项目地址: https://gitcode.com/gh_mirrors/mu/…...

GD32F407定时器实战:1ms中断精准控制LED闪烁(附源码与调试技巧)

GD32F407定时器实战&#xff1a;1ms中断精准控制LED闪烁&#xff08;附源码与调试技巧&#xff09; 1. 嵌入式定时器的核心价值与应用场景 在嵌入式系统开发中&#xff0c;定时器如同系统的心跳&#xff0c;为各类周期性任务提供精准的时间基准。以智能家居中的温控系统为例&…...

FreeRtos——24、STM32中断处理体系及软件定时器按键消抖

第一节:STM32中断处理体系结构1.中断处理路径:2.NVIC中断控制器的中断优先级&#xff1a;2.1 中断号&#xff1a;在NVIC中对于硬件产生的任何一个中断都分配了一个中断号&#xff0c;中断号是一个唯一的标识符&#xff0c;用于识别每个外设设备的中断。NVIC使用中断号来配置中断…...

Janus-Pro-7B开发者案例:基于7860 Web UI构建内部AI知识助手

Janus-Pro-7B开发者案例&#xff1a;基于7860 Web UI构建内部AI知识助手 1. 项目背景与价值 企业内部知识管理一直是个头疼的问题。各种文档、图片、报告散落在不同系统中&#xff0c;员工想要快速找到需要的信息往往需要花费大量时间。传统的搜索工具只能基于文字匹配&#…...

Ceph存储集群搭建:如何选择RAID卡模式(HBA vs IT vs non-RAID)

Ceph存储集群搭建&#xff1a;RAID卡模式选择与性能优化实战指南 在构建企业级Ceph存储集群时&#xff0c;硬件配置的每一个细节都可能成为性能瓶颈或稳定性隐患。其中&#xff0c;RAID控制器的工作模式选择——HBA、IT与non-RAID之间的差异&#xff0c;往往被许多初次部署Ceph…...

THE LEATHER ARCHIVE快速体验:一键生成杂志级AI皮衣大片,小白也能当设计师

THE LEATHER ARCHIVE快速体验&#xff1a;一键生成杂志级AI皮衣大片&#xff0c;小白也能当设计师 1. 项目介绍与核心价值 想象一下&#xff0c;你不需要专业的设计技能&#xff0c;就能创造出媲美时尚杂志封面的皮衣设计作品。THE LEATHER ARCHIVE正是这样一个让创意触手可及…...