Verificador de Anagramas: Um Desafio em Python

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Um anagrama é uma palavra ou frase formada pela reorganização das letras de uma palavra ou frase diferente. Por exemplo, "listen" é um anagrama de "silent". Neste desafio, você será solicitado a escrever uma função que verifica se duas strings são anagramas uma da outra.

Anagrama de String (String Anagram)

Escreva uma função is_anagram(s1, s2) que recebe duas strings como argumentos e retorna True se elas são anagramas uma da outra, e False caso contrário. A função deve ser case-insensitive (não sensível a maiúsculas e minúsculas), ignorar espaços, pontuação e caracteres especiais.

Para resolver este problema, você pode seguir estes passos:

  1. Use str.isalnum() para filtrar caracteres não alfanuméricos e str.lower() para transformar cada caractere em minúsculas.
  2. Use collections.Counter para contar os caracteres resultantes para cada string e comparar os resultados.
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

Resumo

Neste desafio, você aprendeu como verificar se duas strings são anagramas uma da outra. Você usou str.isalnum() para filtrar caracteres não alfanuméricos, str.lower() para transformar cada caractere em minúsculas e collections.Counter para contar os caracteres resultantes para cada string e comparar os resultados.