Dans ce kata, l'objectif est de remplacer chaque lettre d'une chaîne de caractères par sa position dans l'alphabet.
Chaque lettre correspond à une position :
a = 1
b = 2
c = 3
...
z = 26
Tous les caractères qui ne sont pas des lettres doivent être ignorés et ne doivent pas apparaître dans le résultat.
🔗 Kata Codewars
https://www.codewars.com/kata/546f922b54af40e1e90001da
• • •
La fonction doit :
- Parcourir chaque caractère du texte fourni.
- Vérifier si ce caractère est une lettre de l'alphabet.
- Convertir cette lettre en position dans l'alphabet.
- Ignorer tous les caractères qui ne sont pas des lettres :
- espaces
- ponctuation
- chiffres
- symboles
- Retourner une chaîne de nombres séparés par des espaces.
• • •
Pour obtenir la position d'une lettre dans l'alphabet, on peut utiliser son code ASCII.
En C# :
position = caractère - 'a' + 1
Pour simplifier le traitement :
- Convertir la chaîne en minuscules
- Filtrer uniquement les caractères alphabétiques
- Calculer la position de chaque lettre
- Construire la chaîne de sortie séparée par des espaces
• • •
"The sunset sets at twelve o' clock."
20 8 5 19 21 14 19 5 20 19 5 20 19 1 20 20 23 5 12 22 5 15 3 12 15 3 11
T -> 20
h -> 8
e -> 5
Les caractères suivants sont ignorés :
espace
'
.
• • •
| Lettre | Position |
|---|---|
| a | 1 |
| b | 2 |
| c | 3 |
| d | 4 |
| e | 5 |
| ... | ... |
| z | 26 |
• • •
Les tests unitaires sont disponibles dans le projet :
📁 Projet NUnit
../../../tests/6kyu/AlphabetPosition.Tests/
Les tests doivent vérifier notamment :
- une phrase simple
- une phrase avec ponctuation
- une phrase contenant des majuscules
- une chaîne vide
- une chaîne ne contenant aucun caractère alphabétique
• • •
AlphabetPosition.Replace("abc");Résultat :
1 2 3
• • •
- Strings
- Fundamentals
• • •
Ce kata consiste à transformer une chaîne de caractères en une suite de positions alphabétiques.
Les règles principales sont :
- convertir chaque lettre en position
1..26 - ignorer tous les caractères non alphabétiques
- retourner les valeurs séparées par des espaces