Raggruppare anagrammi online in base alle lettere
Lo strumento per raggruppare anagrammi riceve un elenco di parole e riunisce tutte le voci composte dalle stesse lettere, senza distinguere tra maiuscole e minuscole.
Esegui gratis nel browser
Mantiene la grafia originale di ogni parola e l’ordine della prima occorrenza, così il risultato resta facile da confrontare con l’elenco di partenza. Può usarlo per organizzare le opzioni di un gioco linguistico, controllare raccolte di vocaboli, preparare esercizi oppure aggiungere un passaggio di raggruppamento prevedibile a un flusso di elaborazione testuale senza gestire una logica propria.
Come vengono riconosciuti i gruppi di anagrammi
Due parole appartengono allo stesso gruppo di anagrammi quando le loro lettere possono essere riordinate per ottenere la medesima sequenza di caratteri, senza distinguere le maiuscole. Lo strumento crea una firma stabile per ogni parola inviata: la converte in minuscolo, separa i caratteri, li ordina e li unisce nuovamente. Le parole con una firma identica entrano nello stesso insieme. Per esempio, «Listen», «silent» ed «enlist» condividono una firma anche se cambiano l’uso delle maiuscole e l’ordine delle lettere. I valori restituiti conservano la grafia ricevuta; la normalizzazione serve soltanto al confronto. Le lettere ripetute sono significative, quindi «tap» non corrisponde a «tape» e «pool» non corrisponde a «pol». La punteggiatura, gli spazi e i caratteri accentati vengono considerati caratteri e non sono eliminati automaticamente. Questa regola letterale rende il risultato deterministico ed evita che una pulizia nascosta alteri il significato dell’input. Se occorre rimuovere spazi, accenti o punteggiatura, normalizzi la raccolta prima dell’invio.
Come preparare l’input e leggere il risultato
Invii il campo words come un array che contenga almeno una stringa non vuota. Ogni firma di lettere distinta produce un array all’interno dell’array groups restituito. I gruppi compaiono nell’ordine in cui viene incontrato il loro primo elemento, mentre le parole al loro interno mantengono l’ordine originale di input. Il risultato è quindi stabile tra le esecuzioni e può essere usato in test, esportazioni e schermate di controllo. Una parola priva di un altro anagramma appare comunque in un gruppo di un solo elemento, perché ometterla eliminerebbe un’informazione dall’elenco iniziale. Il confronto ignora le maiuscole, ma l’output non le riscrive: «Tea» ed «eat» vengono raggruppate e restituite esattamente così. La capacità rifiuta l’assenza di words, i valori che non sono array, gli elenchi vuoti, le stringhe vuote, gli elementi non testuali e le richieste oltre il limite pubblicato. Questi casi producono errori di input, non risultati parziali costruiti scartando valori senza avviso.
Come usare il raggruppamento deterministico in un flusso
Il raggruppamento degli anagrammi è utile ogni volta che una raccolta deve essere suddivisa in base alla composizione delle lettere. Un servizio di giochi può organizzare una parte del dizionario prima di presentare le mosse possibili. Un insegnante può creare esercizi che richiedano agli studenti di riconoscere i riordinamenti. Un flusso di controllo qualità può mostrare voci diverse soltanto per l’ordine dei caratteri, lasciando visibili quelle senza corrispondenza. Poiché l’algoritmo non usa rete, inferenza di modelli, casualità o ora corrente, lo stesso input produce sempre lo stesso risultato JSON. Questa proprietà è adatta ai processi automatici in cui le risposte vengono confrontate, memorizzate nella cache o verificate in seguito. L’elaborazione avviene localmente nel browser sulla pagina gratuita, mentre le richieste API usano lo stesso risolutore puro a $0.002 per richiesta. Per dizionari molto grandi, divida il lavoro in lotti limitati e stabilisca se l’applicazione debba unire gruppi distribuiti tra lotti diversi.
Casi d'uso
Organizzare le opzioni di giochi linguistici
Raggruppi un elenco in base alle lettere prima di mostrare mosse equivalenti o soluzioni di enigmi.
Creare esercizi di lingua
Trasformi un vocabolario in gruppi stabili per attività di riordino, ortografia e riconoscimento di schemi.
Controllare raccolte di testo
Trovi le voci con gli stessi caratteri in un ordine diverso senza perdere le parole prive di corrispondenza.
Domande frequenti
Il confronto distingue le maiuscole dalle minuscole?
No. Le maiuscole vengono ignorate per formare i gruppi, ma ogni parola conserva la grafia originale nell’output.
Le parole senza corrispondenza vengono incluse?
Sì. Una parola senza altri anagrammi viene restituita in un gruppo di un elemento per rappresentare tutto l’input.
Gli spazi e la punteggiatura vengono ignorati?
No. Sono trattati come caratteri. Li normalizzi o li rimuova prima della richiesta se la Sua definizione lo richiede.
Che cosa accade se l’elenco è vuoto?
La richiesta non riesce e restituisce un errore di input non valido, perché è necessaria almeno una parola.
Lo strumento cambia l’ordine delle parole?
No. I gruppi seguono la prima occorrenza di ogni firma e gli elementi conservano l’ordine di input.
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. Lo stesso raggruppamento deterministico è disponibile anche nel browser.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
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)Esempio di richiesta
{
"words": [
"listen",
"silent",
"enlist",
"stone",
"tones",
"Apple"
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.anagram_groups",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_items | 10000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |