C'est essentiellement l'inverse de Générer une plaque d'immatriculation américaine
Défi: étant donné une chaîne qui correspond à l'un des formats de plaque d'immatriculation ci-dessous, affichez tous les états possibles qui correspondent à cette mise en forme. Dans le tableau ci-dessous 0
représente un seul chiffre 0
jusqu'à 9
inclusif, et A
une seule lettre A
jusqu'à Z
inclusif. Pour les besoins de ce défi, nous ignorons les états avec des règles de format complexes (comme le Delaware, qui a un nombre variable de chiffres), et ignorons la suppression des lettres similaires (par exemple, I
et 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
Exemples:
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)
Règles et clarifications
- La chaîne d'entrée est garantie non vide et garantie dans l'un des formats ci-dessus
- Le comportement si un autre format que celui indiqué ci-dessus n'est pas défini
- L'entrée et la sortie peuvent être fournies par n'importe quelle méthode pratique
- Vous pouvez imprimer le résultat dans STDOUT ou le renvoyer comme résultat de fonction
- Un programme complet ou une fonction sont acceptables
- Les failles standard sont interdites
- Il s'agit de code-golf donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) gagne
la source
[A-Z]*.
au lieu de.*?[a-z]
devrait enregistrer un octetT-SQL, 475 octets
Les sauts de ligne sont uniquement à des fins de lisibilité.
Limité à SQL 2017 ou supérieur par l'utilisation de la
TRIM
fonction. SQL 2016 (requis pourSTRING_SPLIT
), est éventuellement en substituantRTRIM
au coût de 1 octet.Je fais essentiellement un revers
LIKE
match: J'élargissons le modèle de chaque plaque à une pleine chaîne de correspondance de motif générique comme'[A-Z][0-9][0-9] [0-9][A-Z][A-Z]'
, puis comparer à la valeur d'entrée, et le retour des états correspondants (qui est combiné dans un seul champ).Pourrait être en mesure d'économiser un peu plus d'espace en GZIP'ing la longue chaîne; Je vais voir si ça aide ...
la source
Perl 5
(-p)
, 165 octetsPort de la réponse Javascript de @ Arnauld, votez également pour lui.
Essayez-le en ligne!
la source
Fusain , 177 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
Essayez tous les cas de test!Le lien est vers la version détaillée du code. (Un code légèrement différent est nécessaire pour traiter plusieurs cas.)
Sans surprise, un port de la solution de @ Arnauld est beaucoup plus court à seulement 121 octets:
Essayez-le en ligne! Le lien est vers la version détaillée du code. Le deuxième modulo par 30 est implicite dans l'indexation dans le tableau.
la source
Python 3 ,
382378 octetsEssayez-le en ligne!
Remplace les chiffres par
0
et les lettres par1
, puis recherche dans la chaîne la plaque suivie d'une chaîne de lettres. Ensuite, il renvoie simplement toutes les paires de lettres qui ne se chevauchent pas dans cette chaîne.Pas le plus efficace des octets, mais un bon début (peut-être).
J'aime les défis basés sur des informations qui ne peuvent pas seulement être générées.
la source
05AB1E , 176 octets
Essayez-le en ligne!
la source