Problem
Sie sitzen in einer Hütte mitten im Wald fest und haben nur ein altes Scrabble-Set, um sich zu unterhalten. Bei der Überprüfung sehen Sie, dass die Scrabble-Buchstaben so abgenutzt sind, dass nur die Punkte für jeden Buchstaben sichtbar sind.
Trotzdem entscheiden Sie sich, ein Spiel zu spielen. Sie ziehen sieben Buchstaben aus der Tüte und legen sie auf Ihr Tablett. Ihre Herausforderung besteht darin, die möglichen Buchstaben zu bestimmen.
Wenn Sie also eine Liste von Punkten haben, konvertieren Sie diese in eine mögliche Zeichenfolge oder Liste von Buchstaben.
Scrabble Tiles und Distributionen
- 2 leere Kacheln (0 Punkte)
- 1 Punkt: E × 12, A × 9, I × 9, O × 8, N × 6, R × 6, T × 6, L × 4, S × 4, U × 4
- 2 Punkte: D × 4, G × 3
- 3 Punkte: B × 2, C × 2, M × 2, P × 2
- 4 Punkte: F × 2, H × 2, V × 2, W × 2, Y × 2
- 5 Punkte: K × 1
- 8 Punkte: J × 1, X × 1
- 10 Punkte: Q × 1, Z × 1
Wenn Sie also eine Punkteliste haben, [10,10,8,5,1,1,1]
ist "QZJKEEE"
diese zwar gültig, aber "QQJKEEE"
nicht gültig (da sich nur 1 Q-Plättchen in der Tasche befindet).
Problemspezifische Regeln
- Sie können davon ausgehen, dass alle Eingaben gültig sind und dass es immer 7 Kacheln gibt (dh es wird keine Liste mit sieben 10-Punkte-Kacheln geben und es werden nicht 9 Kacheln sein).
- Sie können davon ausgehen, dass zuvor keine Kacheln aus dem Beutel gezogen wurden (daher entspricht die Verteilung der oben definierten englischen Kacheln der Standardverteilung).
- Sie müssen kein gültiges Wort generieren, sondern nur eine gültige Buchstabenfolge.
- Die Reihenfolge Ihrer Zeichenfolge spielt keine Rolle, solange für jedes Plättchen ein entsprechender Buchstabe vorhanden ist.
- Die Punkte basieren auf den oben definierten Standardpunkten für englische Scrabble-Kacheln.
- Sie können in Groß- oder Kleinschreibung ausgeben. Für eine leere Kachel können Sie entweder ein Leerzeichen oder einen Unterstrich '_' ausgeben.
- Ihre Antwort kann als eine angemessene Darstellung der Kacheln wie eine Liste, eine Zeichenfolge, ein Array oder eine Sequenz ausgegeben werden
Allgemeine Regeln:
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden. - Für Ihre Antwort gelten Standardregeln mit Standard-E / A-Regeln. Daher dürfen Sie STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und vollständige Programme vom Rückgabetyp, verwenden. Ihr Anruf.
- Standardlücken sind verboten.
- Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu (z. B. TIO ).
- Außerdem wird dringend empfohlen, eine Erklärung für Ihre Antwort hinzuzufügen.
Testfälle
Da Sie jeden möglichen Wert ausgeben können, ist es offensichtlich schwierig, strenge Testfälle zu definieren.
Einige Fälle mit einem möglichen gültigen Rückgabewert:
[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"
Einige Fälle mit einem ungültigen Rückgabewert:
[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]
(der einzige Fall, in dem es wichtig ist, mit einer D
Radfahrmethode anstelle einer zu beginnen G
)