Dies ist im Wesentlichen die Umkehrung von Generate a US License Plate
Herausforderung: Geben Sie bei einer Zeichenfolge, die mit einem der folgenden Kennzeichenformate übereinstimmt, alle möglichen Status aus, die mit dieser Formatierung übereinstimmen. In der folgenden Tabelle 0
steht für eine einzelne Ziffer 0
bis 9
einschließlich und A
steht für einen einzelnen Buchstaben A
bis Z
einschließlich. Für diese Herausforderung ignorieren wir Bundesstaaten mit komplexen Formatregeln (wie Delaware mit variabler Stellenzahl) und das Entfernen von ähnlichen Buchstaben (z . B. I
und 1
).
AAA 000: AK, IA, MS, MP, VT
0000: AS
AAA0000: AZ, GA, WA
000 AAA: AR, KS, KY, LA, ND, OR
0AAA000: CA
AA-00000: CT
AA-0000: DC
AAA A00: FL
AA 00000: IL
000A,000AA,000AAA,AAA000: IN
0AA0000: MD
AAA 0000,0AA A00,AAA 000: MI
000-AAA: MN
00A-000: NV
000 0000: NH
A00-AAA: NJ
000-AAA,AAA-000: NM
AAA-0000: NY, NC, PA, TX, VA, WI
AAA 0000: OH
000AAA: OK
AAA-000: PR
000-000: RI
AAA 000,000 0AA: SC
A00-00A: TN
A00 0AA: UT
Beispiele:
B32 9AG
[UT]
1YUC037
[CA]
285 LOR
[AR, KS, KY, LA, ND, OR] (in any order)
285-LOR
[MN, NM] (in any order)
285LOR
[IN, OK] (in any order)
Regeln und Erläuterungen
- Die Eingabezeichenfolge ist garantiert nicht leer und weist garantiert eines der oben genannten Formate auf
- Verhalten, wenn ein anderes Format als das oben angegebene angegeben wird, ist undefiniert
- Eingabe und Ausgabe können auf jede bequeme Weise erfolgen
- Sie können das Ergebnis an STDOUT drucken oder als Funktionsergebnis zurückgeben
- Es ist entweder ein vollständiges Programm oder eine Funktion zulässig
- Standardlücken sind verboten
- Dies ist Codegolf, daher gelten alle üblichen Golfregeln, und der kürzeste Code (in Byte) gewinnt
quelle
[A-Z]*.
anstatt.*?[a-z]
sollte ein Byte speichernT-SQL, 475 Bytes
Zeilenumbrüche dienen nur der Lesbarkeit.
Beschränkt auf SQL 2017 oder höher durch Verwendung der
TRIM
Funktion. SQL 2016 (erforderlich fürSTRING_SPLIT
) wird möglicherweiseRTRIM
zum Preis von 1 Byte ersetzt.Ich mache im Grunde ein umgekehrtes
LIKE
Spiel: Ich habe das Muster jeder Platte zu einem vollständigen erweitern Wildcard Mustern passenden String wie'[A-Z][0-9][0-9] [0-9][A-Z][A-Z]'
, dann auf den Eingangswert zu vergleichen, und gebe die passenden Staaten (die in ein einziges Feld kombiniert wird).Könnte in der Lage sein, mehr Platz zu sparen, indem Sie den langen String mit GZIP bearbeiten. Ich werde sehen, ob das hilft ...
quelle
Perl 5
(-p)
, 165 BytesPort of @ Arnauld's Javascript-Antwort, stimme ihm ebenfalls zu.
Probieren Sie es online!
quelle
Kohle , 177 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
Probieren Sie alle Testfälle aus! Link ist eine ausführliche Version des Codes. (Etwas anderer Code für die Verarbeitung mehrerer Fälle erforderlich.)
Es überrascht nicht, dass ein Port der @ Arnauld-Lösung mit nur 121 Byte viel kürzer ist:
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Das zweite Modulo von 30 impliziert die Indizierung in das Array.
quelle
Python 3 ,
382378 BytesProbieren Sie es online!
Ersetzt Zahlen durch
0
und Buchstaben durch1
und durchsucht dann die Zeichenfolge nach der Platte, gefolgt von einer Zeichenfolge. Dann wird einfach jedes nicht überlappende Buchstabenpaar in dieser Zeichenfolge zurückgegeben.Nicht das effizienteste Byte, aber ein guter Start (vielleicht).
Ich mag Herausforderungen, die auf Informationen basieren, die nicht einfach generiert werden können.
quelle
05AB1E , 176 Bytes
Probieren Sie es online!
quelle