Resolva anagramas com um dicionário e encontre todas as palavras
Este solucionador de anagramas compara o dicionário fornecido por você com as letras disponíveis e devolve cada palavra possível sem usar uma letra mais vezes do que ela aparece.
Executar grátis
A busca ignora diferenças entre maiúsculas e minúsculas, desconsidera espaços no conjunto e aceita palavras menores por usar qualquer subconjunto das letras. Os resultados não se repetem e têm ordem estável, o que ajuda em jogos, aulas, criação de desafios e automações reproduzíveis.
Informe as letras e o dicionário do desafio
Comece com todas as letras disponíveis na mão, no suporte ou no conjunto do jogo. Repetições fazem diferença: duas ocorrências permitem dois usos, mas não um terceiro. Espaços, tabulações e quebras de linha no campo de letras são ignorados, portanto você pode separar visualmente os grupos sem mudar o cálculo. Em seguida, forneça as palavras candidatas na lista do dicionário. O solucionador não consulta uma lista externa nem adivinha quais termos o seu jogo aceita; o dicionário enviado por você é a referência definitiva. Assim, o resultado serve para regras próprias, listas escolares, termos especializados ou o vocabulário aprovado de uma competição. Cada entrada não vazia é testada separadamente. Uma palavra pode usar todas as letras ou apenas parte delas, então cinco letras podem gerar anagramas de cinco caracteres e respostas menores. Entradas vazias são descartadas. Mantenha sinais de pontuação apenas quando eles fizerem parte tanto da candidata quanto do conjunto disponível, pois são tratados como caracteres utilizáveis, e não removidos automaticamente.
Entenda a correspondência, as duplicatas e a ordem
A comparação não diferencia maiúsculas de minúsculas e normaliza o texto, permitindo que grafias com capitalização distinta coincidam. O algoritmo monta uma tabela de frequência dos caracteres disponíveis e verifica cada candidata usando uma cópia nova dessas quantidades. Quando uma palavra pede um caractere ausente ou já esgotado, ela é rejeitada. Essa contagem é essencial para não aceitar termos que contêm os caracteres certos, mas exigem repetições demais. Entradas equivalentes que variam apenas em capitalização ou espaços externos aparecem uma vez, preservando a escrita da primeira aceita. A saída coloca palavras maiores no início, o que é conveniente em jogos que as valorizam, e organiza alfabeticamente as que têm o mesmo tamanho para manter o resultado estável. Também fornece a contagem junto da lista ordenada, permitindo que um aplicativo mostre as correspondências e apresente um resumo sem recontá-las. Com a mesma entrada, a resposta é sempre idêntica: não há sorteio, consulta de rede nem dicionário externo sujeito a mudanças.
Use o resultado com segurança em jogos e automações
Em um desafio interativo, cole as letras atuais, envie o vocabulário apropriado e examine primeiro as palavras mais longas. Em uma integração, mande os mesmos dois campos e utilize a lista de palavras e a contagem retornadas. Como somente o dicionário fornecido é avaliado, você pode manter listas diferentes por idioma, faixa etária, edição de torneio ou catálogo de produtos sem alterar o algoritmo. A ferramenta também auxilia autores de passatempos: defina um conjunto de letras, teste uma seleção de respostas e encontre tanto soluções planejadas quanto alternativas indesejadas. O cálculo determinístico permite incluir essas verificações em testes e compará-las ao longo do tempo. Os limites mantêm a execução previsível: são aceitos até 256 caracteres não espaciais no conjunto, 10,000 itens no dicionário e 128 caracteres não espaciais por candidata. Se as letras estiverem ausentes, vazias ou contiverem somente espaços, a solicitação falha em vez de devolver um vazio enganoso. Um dicionário em formato incorreto ou com itens que não sejam texto também gera um erro claro, ajudando o sistema a separar dados inválidos de um desafio legítimo sem resultados.
Casos de uso
Encontrar jogadas permitidas
Compare as letras com o dicionário exato do torneio ou da casa e veja primeiro as palavras maiores.
Montar exercícios de vocabulário
Use uma lista própria da turma para obter todas as respostas válidas de um grupo de letras.
Validar desafios de anagrama
Confirme as soluções planejadas e descubra respostas curtas acidentais antes da publicação.
Perguntas frequentes
A palavra precisa usar todas as letras?
Não. Ela pode usar qualquer subconjunto não vazio, sem repetir um caractere além da quantidade disponível.
Maiúsculas e minúsculas mudam a busca?
Não. A comparação ignora essa diferença, mas preserva a primeira grafia aceita do dicionário.
Existe um dicionário embutido?
Não. O dicionário da sua solicitação é a única referência, portanto o resultado segue o vocabulário escolhido por você.
Como as duplicatas são tratadas?
Entradas equivalentes aparecem uma vez, mantendo a grafia da primeira entrada aceita.
Qual é a ordem dos resultados?
Palavras maiores vêm primeiro; entre palavras do mesmo tamanho, vale a ordem alfabética.
Quanto custa?
Cada solicitação pela API custa US$ 0,002, e o mesmo solucionador determinístico pode ser executado no navegador.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/game/anagram-solver-dictionary \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"letters":"Trace","dictionary":["trace","crate","react","cat","tree","ace","race"]}'const res = await fetch("https://api.kit.forhosting.com/game/anagram-solver-dictionary", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"letters": "Trace",
"dictionary": [
"trace",
"crate",
"react",
"cat",
"tree",
"ace",
"race"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/game/anagram-solver-dictionary",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"letters": "Trace",
"dictionary": [
"trace",
"crate",
"react",
"cat",
"tree",
"ace",
"race"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/game/anagram-solver-dictionary", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"letters":"Trace","dictionary":["trace","crate","react","cat","tree","ace","race"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"letters":"Trace","dictionary":["trace","crate","react","cat","tree","ace","race"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/game/anagram-solver-dictionary", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"letters": "Trace",
"dictionary": [
"trace",
"crate",
"react",
"cat",
"tree",
"ace",
"race"
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "game.anagram_solver_dictionary",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_letters | 256 |
max_items | 10000 |
max_word_length | 128 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |