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:
- Use
str.isalnum()para filtrar caracteres não alfanuméricos estr.lower()para transformar cada caractere em minúsculas. - Use
collections.Counterpara 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.