判断字符串是否为变位词

判断一个字符串是否为另一个字符串的变位词(不区分大小写,忽略空格、标点符号和特殊字符)。

  • 使用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