击败 98.93% 的 Python 解法

觉得生活即将失控的时候,总喜欢做点自己能掌控的事情——例如玩游戏,又如码代码。

与变幻莫测的人生不一样,在机械键盘上敲下一个又一个的字母,就能换来确定无疑的运行结果(哪怕是报错),确实应该被视作一件极其令人欣慰的事。

今天在群里看到一道简单算法题,做了做,没想到超过了 98.93% 的 Python 解法,这已经足够让我自欺欺人了。

题目

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。如:输入: s = “anagram”, t = “nagaram”输出: true

我的解法

def isAnagram(self, s: str, t: str) -> bool:
# 定义默认布尔值参与后续运算
    result = True
# 利用 Python 数据结构 set 去重去序
    set_tmp = set(s)
# 先判断组成字符串的各个字符元素是否一致
if set_tmp == set(t):
for i in set_tmp:
# 利用逻辑运算符判断各个字符元素的数量一致,均为 True 才输出 True
            result = result and (s.count(i) == t.count(i))
else:
        result = False
return (result)

主要利用了 set 的内置优化和特性减少运算,以及使用布尔运算提高效率。

执行用时 : 48 ms, 在所有 Python3 提交中击败了 98.93% 的用户

内存消耗 : 14 MB, 在所有 Python3 提交中击败了 29.70% 的用户“

举凡与意志相违、相妨、相抗,即一切不快不幸之事,总是立刻引起我们重视”,记录下这个小确幸或许,是重要的。

发表评论

邮箱地址不会被公开。 必填项已用*标注