首页 > 其他分享 >1487. 保证文件名唯一

1487. 保证文件名唯一

时间:2023-04-08 18:45:29浏览次数:45  
标签:cnt idx 文件名 ++ 唯一 1487 names str

题目链接:1487. 保证文件名唯一

方法:哈希表

解题思路

设文件名s对应的出现次数为\(cnt[s]\),当前需要创建的文件夹名为\(names[i]\),会有两种情况:

  1. 当前文件夹名为出现过,则\(cnt[names[i]] = 1\);
  2. 当前文件名之前出现过,则更新其后缀名\((cnt[names[i]])\)到最新,然后创建新文件夹\(s\),并\(cnt[s] ++\)。

代码

class Solution {
public:
    vector<string> getFolderNames(vector<string>& names) {
        unordered_map<string, int> cnt;
        for (auto &str : names) {
            int idx = cnt[str];
            if (idx) {
                // cnt 表示的是上一次处理文件名为cnt[str]的下一个后缀,
                // 但中间可能被其他文件夹名为str(idx)的占用,所以要更新。
                while (cnt[str + "(" + to_string(idx) + ")"]) { 
                    idx ++ ;
                    cnt[str] ++ ;
                }
                cnt[str] ++ ;
                str += "(" + to_string(idx) + ")";
                cnt[str] ++ ;
            } else {
                cnt[str] = 1;
            }
        }
        return names;
    }
};

复杂度分析

时间复杂度:\(O(L)\),\(L\)为所有文件名长度之和;
空间复杂度:\(O(L)\)。

标签:cnt,idx,文件名,++,唯一,1487,names,str
From: https://www.cnblogs.com/lxycoding/p/17298985.html

相关文章

  • Windows 短文件名相关 - IIS短文件名泄露
    今天接网安通告,说服务器有IIS短文件名泄露。可这短文件名是什么?拿完通告后回来一通查了个遍终于看明白了。先说短文件名是什么资料传说很久很久以前windows的文件名不能超过8个文件名和3个扩展名,也就是12345678.123就是最大长度了。但是到了windows95的时候,这个长度被扩展到......
  • PDF打开后显示的名称不是其文件名怎么办?
      本文介绍打开PDF文件时,PDF阅读器所显示的文件名称与文件实际名称不一致的解决办法。  就在刚刚准备一篇空间三维建模相关的博客时,偶然发现了如下一个问题:  在打开这个图中名称为空间三维建模_操作.pdf的PDF文件后,在PDF阅读器中其题目却变成了另一个名称:  没错,由原......
  • 一个Web报表项目的性能分析和优化实践(四):MySQL建立索引,唯一索引和组合索引
    先大致介绍下项目的数据库信息。数据库A:主要存放的通用的表,如User、Project、Report等。数据库B、C、D:一个项目对应一个数据库,而且这几个项目的表是完全一样的。数据库表的特点A中的表:数据量几乎都比较小,比如User表中用户数,顶多也就几百上千。B中的表:X/Y/Z3张表几乎是确定的,Data表......
  • Java记录唯一性check
    /***记录唯一性check**@paramid主键*@paramentity实体记录,必须实现equals()方法才能验证更新的场合*@paramfields唯一键字段名称*/if(entity==null||fields.length==0){return;}try{@SuppressWarnings("unchecked")......
  • windows系统 批量处理文件名称
    1.步骤一,提取当前目录下的文件名字  tree当前目录/f>随机目录\输出文件.txt 输出文件内容大致为这样  2.步骤二,转换文件名字为你想要的,比如此处我想将图片名称中的名字全部去除,只剩身份证号1)第一小步:创建一个excel文件,打开之后将所有的图片名称复制到第一列中......
  • git push 到相同唯一分支报错
    现象  原因因为没有将本地的分支与远程仓库的分支进行关联//然后输入gitbranch进行查看本地分支:  确定只有master一个分支 //再输入gitbranch-a......
  • 每日一题-leetcode 环绕字符串中唯一的子字符串
    把字符串s看作是 “abcdefghijklmnopqrstuvwxyz” 的无限环绕字符串,所以 s看起来是这样的:“…zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd…”.现......
  • 《渗透测试》WEB攻防-ASP安全&MDB下载植入&IIS短文件名&写权限&解析 2022 Day18
    1  ➢ ASP-数据库-MDB默认下载➢ ASP-数据库-ASP后门植入连接➢ ASP-中间件-IIS短文件名探针-安全漏洞➢ ASP-中间件-IIS文件上传解析-安全漏洞➢ ASP-中......
  • Python3中zipfile模块文件名乱码问题
    在zipfile.ZipFile中获得的filename有中日文则很大可能是乱码,这是因为在zip标准中,对文件名的encoding用的不是unicode,而可能是各种软件根据系统的默认字符集来采用(此......
  • VB 获取文件名称
    ‘文件路径:D:\Uploads\2022\1\2\056(de652330-9c1e-410e-bdfd-19711e9c25b6).doc‘获取名称:056(de652330-9c1e-410e-bdfd-19711e9c25b6).doc‘获取:056DimfilePathAs......