Verificador de Anagramas Python
Verifique se duas strings são anagramas comparando suas composições de caracteres em Python.
Visão geral
Duas strings são anagramas se contêm os mesmos caracteres em frequências idênticas, embora organizadas em uma ordem diferente (por exemplo, "ouvir" e "silencioso").
Uma maneira elegante de verificar anagramas é limpar as strings (retirar os espaços em branco e as letras minúsculas), classificar seus caracteres e verificar se as listas classificadas são idênticas.
Essa abordagem de classificação é executada em tempo O(k log k), onde k é o comprimento da string, o que é ideal para verificações de texto curto.
Saída de código e execução
Verificando pares de palavras para status de anagramas por classificação de letras.
def is_anagram(str1, str2):
s1 = sorted(str1.lower().replace(" ", ""))
s2 = sorted(str2.lower().replace(" ", ""))
return s1 == s2
word1, word2 = "listen", "silent"
print(f"Are '{word1}' and '{word2}' anagrams? {is_anagram(word1, word2)}")
word3, word4 = "hello", "world"
print(f"Are '{word3}' and '{word4}' anagrams? {is_anagram(word3, word4)}")Are 'listen' and 'silent' anagrams? True
Are 'hello' and 'world' anagrams? FalseImplementação passo a passo
- Análise de texto e motores de comparação linguística
- Design de quebra-cabeças de cordas e sistemas validadores
- Tarefas de codificação de entrevistas técnicas
Perguntas frequentes
Existe uma maneira de resolver isso em tempo linear O(n)?
Sim! Em vez de classificar, você pode contar as frequências das letras usando um mapa hash ou `collections.Counter` do Python e comparar os mapas de frequência resultantes.