Il tuo compito è determinare se una determinata stringa è della lunghezza corretta e può essere rappresentata con tessere Scrabble e, in tal caso, produrre la somma del punteggio di ogni lettera.
Se non sai come giocare a Scrabble: hai 100 tessere con varie lettere dalla A alla Z stampate, oltre a due caratteri jolly che possono rappresentare qualsiasi lettera. Ogni lettera ha un certo numero di punti e ogni tessera (ma non necessariamente una parola) può essere usata una sola volta. Quando viene riprodotta una parola, viene sommato il valore in punti di ciascuna tessera utilizzata, che diventa il punteggio. Poiché è disponibile un numero limitato di lettere, una parola può contenere una determinata lettera tutte le volte che la lettera ha tessere + caratteri jolly non utilizzati. La scacchiera Scrabble è di 15 × 15 celle, quindi la parola deve contenere da 2 a 15 caratteri.
Per un elenco della quantità e del punteggio di ciascuna lettera nella versione inglese, vedere di seguito o http://boardgames.about.com/od/scrabble/a/tile_distribute.htm ( archivio ).
Lettera Qtà Punti Lettera Qtà Punti ------------------- ------------------- 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 [selvaggio] 2 0 N 6 1
Ulteriori regole
- Il programma deve prendere una singola stringa di input da STDIN o simili.
- L'input conterrà sempre solo lettere maiuscole.
- Se la stringa contiene più copie di una lettera di quante siano i caratteri jolly o le tessere non utilizzati per quella lettera OPPURE la lunghezza della stringa non è compresa tra 2 e 15 inclusi, il programma dovrebbe generare
Invalid
. - Altrimenti, il punteggio dovrebbe essere sommato usando i dati della tabella sopra e l'output.
- Non utilizzare i caratteri jolly se non necessario.
- Non preoccuparti di bonus come i punteggi di doppia parola o se la stringa è una parola reale.
- Il programma deve produrre il risultato tramite STDOUT o simili.
- Non sono consentite scappatoie vietate per impostazione predefinita .
- L'uso di una fonte esterna come un sito Web, nonché qualsiasi libreria, API, funzione o simili che calcola i punteggi di Scrabble o le quantità appropriate non sono consentiti.
- Questo è code-golf , quindi vince meno byte.
Procedura dettagliata
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
Casi test
Input Output ------------------------ SCRABBLE 14 JAZZ 19 CAMBIO STACKEX 32 XYWFHQYVZVJKHFW 81 PIZZAZZ non valido KIXOKEJAJAX Non valido MISUNDERSTANDING Non valido
-1
?
Invalid
.