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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LeetCode题解(1507):转换日期格式(Python)
下一篇:LeetCode题解(0486):预测赢家(Python)

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月17日 14时04分06秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章