Regrouper des anagrammes en ligne selon leurs lettres
L’outil de regroupement d’anagrammes reçoit une liste de mots et rassemble toutes les entrées composées des mêmes lettres, sans tenir compte des majuscules.
Lancer gratuitement
Il conserve la graphie d’origine de chaque mot ainsi que l’ordre de sa première apparition, ce qui facilite la comparaison avec la liste source. Vous pouvez l’utiliser pour organiser les propositions d’un jeu de lettres, vérifier un vocabulaire, préparer des exercices ou ajouter une étape de classement prévisible à un traitement de texte sans entretenir votre propre logique.
Comment les groupes d’anagrammes sont reconnus
Deux mots appartiennent au même groupe d’anagrammes lorsque leurs lettres peuvent être réordonnées pour former la même séquence de caractères, sans distinction entre majuscules et minuscules. L’outil crée une signature stable pour chaque mot transmis : il le convertit en minuscules, sépare ses caractères, les trie, puis les réunit. Les mots portant une signature identique rejoignent le même ensemble. Ainsi, « Listen », « silent » et « enlist » partagent une signature malgré des différences de casse et d’ordre. Les valeurs renvoyées conservent la graphie fournie ; la normalisation ne sert qu’à la comparaison. Les lettres répétées comptent : « tap » ne correspond donc pas à « tape », ni « pool » à « pol ». La ponctuation, les espaces et les caractères accentués sont considérés comme des caractères et ne sont pas supprimés. Cette règle littérale garantit un résultat déterministe et évite qu’un nettoyage implicite modifie le sens de l’entrée. Si vous devez retirer espaces, accents ou ponctuation, normalisez la collection avant son envoi.
Préparer l’entrée et comprendre le résultat
Envoyez le champ words sous forme de tableau contenant au moins une chaîne non vide. Chaque signature de lettres distincte produit un tableau au sein du tableau groups renvoyé. Les groupes suivent l’ordre d’apparition de leur premier membre, tandis que les mots de chaque groupe gardent leur ordre d’entrée. Le résultat reste ainsi stable d’une exécution à l’autre et convient aux tests, aux exports et aux écrans de contrôle. Un mot sans anagramme associée figure tout de même dans un groupe d’un seul élément, car son omission ferait perdre une information de la liste source. La comparaison ignore la casse, mais la sortie ne réécrit pas les majuscules : « Tea » et « eat » sont réunis puis rendus tels quels. La capacité refuse un champ words absent, une valeur qui n’est pas un tableau, une liste vide, une chaîne vide, un élément non textuel et toute demande dépassant la limite publiée. Ces situations produisent une erreur d’entrée complète, jamais un résultat partiel après suppression silencieuse.
Intégrer un regroupement déterministe à un processus
Le classement des anagrammes convient à toute collection qui doit être répartie selon la composition des lettres. Un service de jeu peut organiser un extrait de dictionnaire avant de proposer des coups possibles. Un enseignant peut construire des exercices où les élèves reconnaissent des réarrangements. Un contrôle de qualité peut révéler des entrées qui ne diffèrent que par l’ordre des caractères, tout en laissant visibles les éléments sans correspondance. L’algorithme n’utilise ni réseau, ni inférence de modèle, ni hasard, ni heure courante : une même entrée produit donc toujours le même objet JSON. Cette stabilité est utile aux tâches automatisées dont les réponses seront comparées, mises en cache ou auditées. Le traitement s’effectue localement dans le navigateur sur la page gratuite, tandis que l’API utilise le même solveur pur pour $0.002 par requête. Pour de très grands dictionnaires, répartissez le travail en lots bornés et déterminez si votre application doit fusionner les groupes présents dans plusieurs lots.
Cas d’usage
Organiser les choix d’un jeu de lettres
Classez une liste de candidats par composition avant d’afficher des coups équivalents ou des réponses d’énigmes.
Créer des exercices de langue
Transformez un vocabulaire en groupes stables pour des activités de réarrangement, d’orthographe et de reconnaissance.
Contrôler des jeux de données textuels
Repérez les entrées qui contiennent les mêmes caractères dans un autre ordre sans perdre les mots isolés.
Questions fréquentes
La comparaison tient-elle compte de la casse ?
Non. La casse est ignorée pour former les groupes, mais chaque mot conserve sa graphie d’origine dans la sortie.
Les mots sans correspondance sont-ils inclus ?
Oui. Un mot sans anagramme est renvoyé dans un groupe d’un élément afin de représenter toute l’entrée.
Les espaces et la ponctuation sont-ils ignorés ?
Non. Ils comptent comme caractères. Normalisez-les ou retirez-les avant la requête si votre définition l’exige.
Que se passe-t-il si la liste est vide ?
La requête échoue avec une erreur d’entrée non valide, car au moins un mot est obligatoire.
L’outil modifie-t-il l’ordre des mots ?
Non. Les groupes suivent la première occurrence de chaque signature et leurs membres gardent l’ordre d’entrée.
Quel est le prix d’une requête API ?
Chaque requête API coûte $0.002. Le même regroupement déterministe est aussi disponible dans le navigateur.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"words": [
"listen",
"silent",
"enlist",
"stone",
"tones",
"Apple"
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.anagram_groups",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_items | 10000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |