Problema
Sei bloccato in una capanna in mezzo al bosco, con solo un vecchio scarabocchio pronto a divertirti. All'ispezione si vede che le lettere scrabble sono così usurate, che sono visibili solo i punti per ogni lettera.
Tuttavia, decidi di giocare. Prendi sette lettere dalla borsa e le metti sul tuo vassoio, la tua sfida è determinare quali potrebbero essere quelle lettere.
Quindi, in generale, dato un elenco di punti convertirlo in qualsiasi possibile stringa o elenco di lettere.
Piastrelle Scrabble e Distribuzioni
- 2 tessere vuote (segnando 0 punti)
- 1 punto: E × 12, A × 9, I × 9, O × 8, N × 6, R × 6, T × 6, L × 4, S × 4, U × 4
- 2 punti: D × 4, G × 3
- 3 punti: B × 2, C × 2, M × 2, P × 2
- 4 punti: F × 2, H × 2, V × 2, L × 2, Y × 2
- 5 punti: K × 1
- 8 punti: J × 1, X × 1
- 10 punti: Q × 1, Z × 1
Quindi, se hai un elenco di punti, [10,10,8,5,1,1,1]
allora "QZJKEEE"
sarebbe valido ma "QQJKEEE"
non sarebbe valido (dal momento che nella borsa c'è solo 1 tessera Q)
Regole specifiche del problema
- Puoi presumere che tutti gli input siano validi e che ci saranno sempre 7 tessere (cioè non sarà un elenco di sette tessere da 10 punti e non saranno 9 tessere)
- Si può presumere che nessuna tessera sia stata precedentemente estratta dalla borsa (quindi la distribuzione è la distribuzione standard delle tessere inglesi come definita sopra)
- Non è necessario generare una parola valida, ma solo una stringa di lettere valida.
- L'ordine della stringa è irrilevante purché per ogni riquadro sia presente una lettera corrispondente.
- I punti si basano sui punti standard delle tessere scrabble inglesi come definito sopra.
- È possibile produrre in maiuscolo o minuscolo, per un riquadro vuoto è possibile generare un carattere spazio o un carattere di sottolineatura '_'
- La tua risposta può essere prodotta come una rappresentazione ragionevole dei riquadri come Elenco, Stringa, Matrice o Sequenza
Regole generali:
- Questo è code-golf , quindi vince la risposta più breve in byte.
Non lasciare che le lingue di code-golf ti scoraggino dal pubblicare risposte con lingue non codegolfing. Prova a trovare una risposta il più breve possibile per "qualsiasi" linguaggio di programmazione. - Per la tua risposta valgono regole standard con regole I / O predefinite , quindi puoi usare STDIN / STDOUT, funzioni / metodo con i parametri corretti e tipo di ritorno, programmi completi. La tua chiamata.
- Sono vietate le scappatoie predefinite .
- Se possibile, aggiungi un link con un test per il tuo codice (ad es. TIO ).
- Inoltre, si consiglia vivamente di aggiungere una spiegazione per la risposta.
Casi test
Ovviamente, poiché è possibile generare qualsiasi valore possibile, è difficile definire casi di test rigorosi.
Alcuni casi con un possibile valido valore di ritorno :
[10,0,10,5,8,8,0] -> "Q ZKJX "
[1,1,1,1,1,1,1] -> "EEEEEEE"
[1,2,3,4,5,8,0] -> "NDBHKJ "
[2,2,2,2,2,2,2] -> "DGDGDGD"
Alcuni casi con un valore di ritorno non valido :
[10,0,10,5,8,8,0] -> "Q QKJX " - Too many Qs
[1,1,1,1,1,1,1] -> "EEEEEE " - Space is 0 points not 1
[1,2,3,4,5,8,0] -> "NDBH" - Too short
[1,2,3,4,5,8,0] -> "NDBHKJ I" - Too long
[1,2,3,4,5,8,0] -> "ÉDBHKJ1" - Contains none scrabble characters
[2,2,2,2,2,2,2] -> "GDGDGDG" - Contains too many Gs (case for invalid cycling)
[2,2,2,2,2,2,2]
(l'unico caso in cui è importante iniziare con un metodo D
anziché con un G
metodo di ciclismo)