购物网站建设的可行性,wordpress 插件全部消失,做影视网站关停,建行信用卡网站保证文件名唯一
题目描述
给你一个长度为 n 的字符串数组 names 。你将会在文件系统中创建 n 个文件夹#xff1a;在第 i 分钟#xff0c;新建名为 names[i] 的文件夹。
由于两个文件 不能 共享相同的文件名#xff0c;因此如果新建文件夹使用的文件名已经被占用#xf…保证文件名唯一
题目描述
给你一个长度为 n 的字符串数组 names 。你将会在文件系统中创建 n 个文件夹在第 i 分钟新建名为 names[i] 的文件夹。
由于两个文件 不能 共享相同的文件名因此如果新建文件夹使用的文件名已经被占用系统会以 (k) 的形式为新文件夹的文件名添加后缀其中 k 是能保证文件名唯一的 最小正整数 。
返回长度为 n 的字符串数组其中 ans[i] 是创建第 i 个文件夹时系统分配给该文件夹的实际名称。
样例
样例输入 names [“pes”,“fifa”,“gta”,“pes(2019)”] names [“gta”,“gta(1)”,“gta”,“avalon”] names [“onepiece”,“onepiece(1)”,“onepiece(2)”,“onepiece(3)”,“onepiece”] names [“wano”,“wano”,“wano”,“wano”] 样例输出 [“pes”,“fifa”,“gta”,“pes(2019)”] 解释文件系统将会这样创建文件名 “pes” -- 之前未分配仍为 “pes” “fifa” -- 之前未分配仍为 “fifa” “gta” -- 之前未分配仍为 “gta” “pes(2019)” -- 之前未分配仍为 “pes(2019)” [“gta”,“gta(1)”,“gta(2)”,“avalon”] 解释文件系统将会这样创建文件名 “gta” -- 之前未分配仍为 “gta” “gta(1)” -- 之前未分配仍为 “gta(1)” “gta” -- 文件名被占用系统为该名称添加后缀 (k)由于 “gta(1)” 也被占用所以 k 2 。实际创建的文件名为 “gta(2)” 。 “avalon” -- 之前未分配仍为 “avalon” [“onepiece”,“onepiece(1)”,“onepiece(2)”,“onepiece(3)”,“onepiece(4)”] 解释当创建最后一个文件夹时最小的正有效 k 为 4 文件名变为 “onepiece(4)”。 [“wano”,“wano(1)”,“wano(2)”,“wano(3)”] 解释每次创建文件夹 “wano” 时只需增加后缀中 k 的值即可。 提示
1names.length5∗1041 names.length 5 * 10^41names.length5∗1041names[i].length201 names[i].length 201names[i].length20names[i]由小写英文字母、数字和/或圆括号组成。names[i] 由小写英文字母、数字和/或圆括号组成。names[i]由小写英文字母、数字和/或圆括号组成。
思路
模拟咯
代码实现
class Solution {public String[] getFolderNames(String[] names) {int n names.length;HashMapString, Integer map new HashMap();String[] ans new String[n];for(int i 0; i n; i){if(map.containsKey(names[i])){int index map.get(names[i]);String cur names[i] ( index );while(map.containsKey(cur)){index; cur names[i] ( index );}ans[i] cur;map.put(names[i], index 1);map.put(cur, 1);}else{ans[i] names[i];map.put(names[i], 1);}}return ans;}
}