给你一个长度为 n 的字符串数组 names 。
你将会在文件系统中创建 n 个文件夹:在第 i 分钟,新建名为 names[i] 的文件夹。
由于两个文件 不能 共享相同的文件名,
因此如果新建文件夹使用的文件名已经被占用,
系统会以 (k) 的形式为新文件夹的文件名添加后缀,
其中 k 是能保证文件名唯一的 最小正整数
解题思路:
用字典保存当前是否遇到过此串 键为串 值为次数
如果新加入的串键值大于等于1,则在其后拼凑(x)并再次与字典值对比,直到不存在时加入
在此期间更新字典
class Solution(object):
def getFolderNames(self, names):
namesDict = {}
res = []
for name in names:
# print("name", name)
if name not in namesDict:
res.append(name)
namesDict[name] = 1
elif name in namesDict:
curName = name + "(" + str(namesDict[name]) + ")"
# print("curName", curName)
namesDict[name] += 1
while curName in namesDict:
curName = name + "(" + str(namesDict[name]) + ")"
# print("curName_while", curName)
namesDict[name] += 1
res.append(curName)
namesDict[curName] = 1
else:
pass
# print("namesDict", namesDict)
return res
本文介绍了一种算法,用于在创建文件夹时处理名称冲突,通过字典记录已使用名称,为新文件夹生成唯一名称(如 names[i]+(k)),确保所有文件夹名字的唯一性。

239

被折叠的 条评论
为什么被折叠?



