Verificador de Anagramas Python

Verifique se duas strings são anagramas comparando suas composições de caracteres em Python.

Experimente no Editor

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)}")
Saída terminal
Are 'listen' and 'silent' anagrams? True
Are 'hello' and 'world' anagrams? False

Implementaçã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.

Tópicos Relacionados