判断字符串是否为变位词
判断一个字符串是否为另一个字符串的变位词(不区分大小写,忽略空格、标点符号和特殊字符)。
- 使用
str.isalnum()
过滤掉非字母数字字符,使用str.lower()
将每个字符转换为小写。 - 使用
collections.Counter
计算每个字符串的字符数量,并比较结果。
from collections import Counter
def is_anagram(s1, s2):
return Counter(
c.lower() for c in s1 if c.isalnum()
) == Counter(
c.lower() for c in s2 if c.isalnum()
)
is_anagram('#anagram', 'Nag a ram!') # True