Agrupar anagramas online por letras correspondentes
A ferramenta de agrupamento de anagramas recebe uma lista de palavras e reúne todas as entradas formadas pelas mesmas letras, sem considerar maiúsculas e minúsculas.
Executar grátis
Ela mantém a grafia original de cada palavra e a ordem da primeira ocorrência, facilitando a comparação do resultado com a lista de origem. Você pode usá-la para organizar opções de jogos de palavras, conferir vocabulários, preparar exercícios ou acrescentar uma etapa previsível de agrupamento a um fluxo de processamento de texto sem manter uma lógica própria.
Como os grupos de anagramas são identificados
Duas palavras pertencem ao mesmo grupo de anagramas quando suas letras podem ser reorganizadas para gerar a mesma sequência de caracteres, sem diferenciar maiúsculas e minúsculas. A ferramenta cria uma assinatura estável para cada palavra enviada: converte-a em minúsculas, separa seus caracteres, ordena-os e volta a uni-los. Palavras com assinaturas idênticas entram no mesmo conjunto. Por exemplo, “Listen”, “silent” e “enlist” compartilham uma assinatura, embora a capitalização e a ordem das letras sejam diferentes. Os valores devolvidos mantêm a grafia informada; a normalização serve apenas para a comparação. Letras repetidas são relevantes, portanto “tap” não corresponde a “tape”, nem “pool” a “pol”. Pontuação, espaços e caracteres acentuados contam como caracteres e não são removidos silenciosamente. Essa regra literal torna o resultado determinístico e impede que uma limpeza oculta altere o sentido da entrada. Se você precisar aparar espaços, remover acentos ou excluir pontuação, normalize a coleção antes do envio.
Como preparar a entrada e interpretar o resultado
Envie o campo words como uma lista com pelo menos uma string não vazia. Cada assinatura de letras diferente gera uma lista dentro da lista groups devolvida. Os grupos aparecem na ordem em que seu primeiro integrante é encontrado, e as palavras de cada grupo preservam a ordem original da entrada. Isso mantém os resultados estáveis entre execuções e facilita seu uso em testes, exportações e telas de revisão. Uma palavra sem outro anagrama ainda aparece em um grupo de um único item, pois omiti-la eliminaria informações da lista original. A comparação não considera maiúsculas, mas a saída não altera a capitalização: “Tea” e “eat” ficam juntas e são devolvidas exatamente dessa forma. A capacidade rejeita a ausência de words, valores que não sejam listas, listas vazias, strings vazias, itens que não sejam texto e solicitações acima do limite publicado. Esses casos geram erros de entrada, e não resultados parciais montados depois de descartar valores sem aviso.
Como usar o agrupamento determinístico em um fluxo
O agrupamento de anagramas é útil sempre que uma coleção precisa ser dividida pela composição das letras. Um serviço de jogos pode agrupar parte de um dicionário antes de apresentar jogadas possíveis. Um professor pode criar exercícios para que os alunos reconheçam rearranjos. Um fluxo de qualidade de dados pode revelar entradas que diferem apenas na ordem dos caracteres e manter visíveis os itens sem correspondência. Como o algoritmo não usa rede, inferência de modelos, aleatoriedade nem horário atual, a mesma entrada sempre produz o mesmo resultado JSON. Essa propriedade é valiosa em tarefas automatizadas cujas respostas serão comparadas, armazenadas em cache ou auditadas. O processamento ocorre localmente no navegador na página gratuita, enquanto as solicitações à API usam o mesmo solucionador puro por US$ 0,002 por solicitação. Para dicionários muito grandes, divida o trabalho em lotes limitados e determine se seu aplicativo precisa unir grupos que atravessem os limites dos lotes.
Casos de uso
Organizar opções de jogos de palavras
Agrupe uma lista de opções pela composição das letras antes de exibir jogadas equivalentes ou respostas de desafios.
Criar exercícios de idioma
Transforme um vocabulário em grupos estáveis para atividades de rearranjo, ortografia e reconhecimento de padrões.
Analisar conjuntos de textos
Encontre entradas com os mesmos caracteres em outra ordem sem perder as palavras que não têm correspondência.
Perguntas frequentes
A comparação diferencia maiúsculas de minúsculas?
Não. A capitalização é ignorada na formação dos grupos, mas cada palavra mantém a grafia original na saída.
Palavras isoladas são incluídas?
Sim. Uma palavra sem anagrama correspondente volta como grupo de um item para representar toda a entrada.
Espaços e pontuação são ignorados?
Não. Eles contam como caracteres. Normalize-os ou remova-os antes da solicitação se sua definição de palavra exigir isso.
O que acontece se a lista estiver vazia?
A solicitação falha com um erro de entrada inválida, pois é necessário informar pelo menos uma palavra.
A ferramenta muda a ordem das palavras?
Não. Os grupos seguem a primeira ocorrência de cada assinatura, e os integrantes mantêm a ordem de entrada.
Quanto custa uma solicitação à API?
Cada solicitação à API custa US$ 0,002. O mesmo agrupamento determinístico também está disponível 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/text/anagram-groups \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"words":["listen","silent","enlist","stone","tones","Apple"]}'const res = await fetch("https://api.kit.forhosting.com/text/anagram-groups", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"words": [
"listen",
"silent",
"enlist",
"stone",
"tones",
"Apple"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/anagram-groups",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"words": [
"listen",
"silent",
"enlist",
"stone",
"tones",
"Apple"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/anagram-groups", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"words":["listen","silent","enlist","stone","tones","Apple"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"words":["listen","silent","enlist","stone","tones","Apple"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/anagram-groups", 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
{
"words": [
"listen",
"silent",
"enlist",
"stone",
"tones",
"Apple"
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.anagram_groups",
"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_items | 10000 |
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. |