Votre tâche consiste à déterminer si une chaîne donnée est de bonne longueur et peut être représentée avec des tuiles Scrabble et, si c'est le cas, à produire la somme du score de chaque lettre.
Si vous ne savez pas comment jouer au Scrabble :, vous avez 100 tuiles avec différentes lettres A – Z imprimées dessus, ainsi que deux jokers qui peuvent représenter n'importe quelle lettre. Chaque lettre a un certain nombre de points, et chaque tuile (mais pas nécessairement un mot) ne peut être utilisée qu'une seule fois. Lorsqu'un mot est joué, la valeur en points de chaque tuile utilisée est additionnée, ce qui devient le score. Comme il y a un nombre limité de lettres disponibles, un mot ne peut avoir qu'une certaine lettre autant de fois que cette lettre a de tuiles + tous les caractères génériques inutilisés. Le tableau Scrabble est de 15 × 15 cellules, donc le mot doit comprendre entre 2 et 15 caractères.
Pour une liste de la quantité et du score de chaque lettre dans la version anglaise, voir ci-dessous ou http://boardgames.about.com/od/scrabble/a/tile_distribute.htm ( archive ).
Lettre Qté Points Lettre Qté Points ------------------- ------------------- A 9 1 O 8 1 B 2 3 P 2 3 C 2 3 Q 1 10 D 4 2 R 6 1 E 12 1 S 4 1 F 2 4 T 6 1 G 3 2 U 4 1 H 2 4 V 2 4 I 9 1 W 2 4 J 1 8 X 1 8 K 1 5 Y 2 4 L 4 1 Z 1 10 M 2 3 [sauvage] 2 0 N 6 1
Règles supplémentaires
- Le programme doit prendre une seule chaîne d'entrée de STDIN ou similaire.
- L'entrée ne contiendra toujours que des lettres majuscules.
- Si la chaîne contient plus de copies d'une lettre qu'il n'y a de caractères génériques ou de tuiles inutilisés pour cette lettre OU que la longueur de la chaîne n'est pas comprise entre 2 et 15 inclus, le programme doit sortir
Invalid
. - Sinon, le score doit être additionné en utilisant les données du graphique ci-dessus et en sortie.
- N'utilisez pas de caractères génériques, sauf si cela est nécessaire.
- Ne vous inquiétez pas des bonus tels que les scores de double mot ou si la chaîne est un vrai mot.
- Le programme doit sortir le résultat via STDOUT ou similaire.
- Les failles interdites par défaut ne sont pas autorisées.
- L'utilisation d'une source externe telle qu'un site Web, ainsi que toutes bibliothèques, API, fonctions ou similaires qui calculent les scores Scrabble ou les quantités appropriées ne sont pas autorisées.
- Il s'agit de code-golf , donc le moins d'octets gagne.
Procédure pas à pas
Input: CODEGOLF
C -> 3, O -> 1, D -> 2, E -> 1, G -> 2, O -> 1, L -> 1, F -> 4
3 + 1 + 2 + 1 + 2 + 1 + 1 + 4 = 15
Output: 15
Cas de test
Entrée sortie ------------------------ SCRABBLE 14 JAZZ 19 STACKEXCHANGE 32 XYWFHQYVZVJKHFW 81 PIZZAZZ invalide KIXOKEJAJAX non valide MISUNDERSTANDING Invalid
-1
,?
Invalid
.