Files
30-seconds-of-code/snippets/is_anagram.md
Angelos Chalaris 88b0539e7e Update is_anagram.md
2020-03-19 14:50:37 +02:00

633 B

title, tags
title tags
is_anagram string,intermediate

Checks if a string is an anagram of another string (case-insensitive, ignores spaces, punctuation and special characters).

Use isalnum() to filter out non-alphanumeric characters, lower() to transform each character to lowercase. Use collections.Counter to count the resulting characters for each string and compare the results.

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