Escreva uma função que compare e retorne verdadeiro, caso uma string seja anagrama da outra, e falso, caso contrario.
Passo 1
O exercício quer uma função que receba duas strings e retorne verdadeiro se uma for anagrama da outra (ou seja, tiverem as mesmas letras com a mesma frequência). Para isso, vamos precisar normalizar as strings e comparar suas composições de caracteres.
Passo 2
Normalizar significa, por exemplo, converter tudo para letras minúsculas com
.lower()
(para ignorar diferenças de maiúsculas) e remover espaços (caso você queira ignorar separação de palavras), usando
.replace(' ', '')
```.
Passo 3
Para comparar as composições de caracteres, uma forma prática é ordenar os caracteres de cada string com
sorted()
, que devolve uma lista de caracteres ordenados, e então juntar de volta numa string com
''.join()
```. Se as duas strings resultantes forem iguais, significa que tinham exatamente os mesmos caracteres.
Passo 4
Implementamos a função em Python usando esses passos: transformamos, ordenamos e comparamos, e retornamos o resultado da comparação.
Resposta
def sao_anagramas(s1, s2):
# normaliza: remove espaços e converte para minúsculas
s1_norm = s1.replace(’ ‘, ‘’).lower()
s2_norm = s2.replace(’ ', ‘’).lower()
# ordena os caracteres e compara
return ‘’.join(sorted(s1_norm)) == ‘’.join(sorted(s2_norm))
# normaliza: remove espaços e converte para minúsculas
s1_norm = s1.replace(’ ‘, ‘’).lower()
s2_norm = s2.replace(’ ', ‘’).lower()
# ordena os caracteres e compara
return ‘’.join(sorted(s1_norm)) == ‘’.join(sorted(s2_norm))