LeetCode题解(1487):修改文件名列表使文件名唯一(Python)
发布日期:2021-06-29 19:58:46
浏览次数:3
分类:技术文章
本文共 1222 字,大约阅读时间需要 4 分钟。
题目:(中等)
标签:字符串、哈希表
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
---|---|---|---|
Ans 1 (Python) | O ( N 2 ) O(N^2) O(N2) | O ( N ) O(N) O(N) | 超出时间限制 |
Ans 2 (Python) | O ( N ) O(N) O(N) | O ( N ) O(N) O(N) | 124ms (86.44%) |
Ans 3 (Python) |
解法一(暴力集合解法):
class Solution: def getFolderNames(self, names: List[str]) -> List[str]: name_set = set() ans = [] for name in names: # 处理还没有重名的情况 if name not in name_set: name_set.add(name) ans.append(name) # 处理出现重名的情况 else: # 计算当前文件夹名的名称部分和计数部分 word = name num = 1 # 调整当前文件夹名的数量至没有重名 while word + "(" + str(num) + ")" in name_set: num += 1 new_name = word + "(" + str(num) + ")" name_set.add(new_name) ans.append(new_name) return ans
解法二(哈希表记录):
class Solution: def getFolderNames(self, names: List[str]) -> List[str]: count = { } ans = [] for name in names: s = name while s in count: s = "".join([name, "(", str(count[name]), ")"]) count[name] += 1 count[s] = 1 ans.append(s) return ans
转载地址:https://dataartist.blog.csdn.net/article/details/108338361 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月17日 14时04分06秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux 下zip包的压缩与解压
2019-04-30
Andoird SDK目录解析
2019-04-30
Google Guava官方教程(中文版)
2019-04-30
Guava教程
2019-04-30
The Book of QT4 翻译:1.2 布局,对象层级和内存管理
2019-04-30
麒麟信安UniKylin3.3安装配置pyqt5运行环境
2019-04-30
linux中python3 pip快速搭建pyqt5环境
2019-04-30
泛型程序设计
2019-04-30
Java集合
2019-04-30
Java List集合
2019-04-30
Java Set集合 HashSet TreeSet
2019-04-30
Java Map集合
2019-04-30
ASCII、ISO-8859-1和GB系列编码
2019-04-30
Unicode及UTF-8、UTF-16、UTF-32
2019-04-30
UCS-2、UCS-4
2019-04-30
Unicode和UCS
2019-04-30
Java如何给ServerSocket绑定指定IP地址
2019-04-30
IPv4地址的分配原理
2019-04-30
IP地址0.0.0.0表示什么
2019-04-30
ps命令和客户端显示结果详细解释
2019-04-30