Scott's Blog

学则不固, 知则不惑

0%

算法题: 有效的字母异位词

📌 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。

直接排序,异位词的顺序不同出现的次数一样,所以使用 sort 方法排序后的值应该相等的。

1
2
3
4
5
6
7
8
9
10
11
12
13
def isAnagramSort(s, t):
if len(s) != len(t):
return False

s_sorted = sorted(s)
t_sorted = sorted(t)

if s_sorted == t_sorted:
return True
else:
return False

isAnagramSort(a, b)

使用 collection 中的 Counter。

Counter 支持比较运算符 ==, !=, <, <=, >, >=.

需要注意对于个数为 0的,不算入比较的范围,如 Counter(a=1) == Counter(a=1, b=0) 返回 true.

1
2
3
4
import collections

def isAnagramCounter(s: str, t: str) -> bool:
return collections.Counter(s) == collections.Counter(t)

链接: