Règles
Étant donné un code de pays ISO3166-1-Alpha-2, votre tâche consiste à décider de la direction du trafic pour ce pays:
- L'entrée sera un code de pays valide (valide car c'est un élément des deux listes fournies)
- L'entrée peut être une liste de deux caractères au lieu d'une chaîne si cela aide
- Vous pouvez choisir de saisir des données en minuscules
- Vous choisirez une valeur, disons pour la droite (votre choix) et sortirez cette valeur si le trafic dans ce pays est droitier et tout le reste dans l'autre cas.
- Il vous suffit de gérer les codes de pays contenus dans l'une de ces listes:
Ce sont tous des pays où le trafic est gaucher:
['AI', 'AG', 'AU', 'BS', 'BD', 'BB', 'BM', 'BT', 'BW', 'VG', 'BN', 'KY', 'CX', 'CC', 'CK', 'CY', 'DM', 'FK', 'FJ', 'GD', 'GG', 'GY', 'HK', 'IN', 'ID', 'IE', 'IM', 'JM', 'JP', 'JE', 'KE', 'KI', 'LS', 'MO', 'MW', 'MY', 'MV', 'MT', 'MU', 'MS', 'MZ', 'NA', 'NR', 'NP', 'NZ', 'NU', 'NF', 'PK', 'PG', 'PN', 'SH', 'KN', 'LC', 'VC', 'WS', 'SC', 'SG', 'SB', 'SO', 'ZA', 'GS', 'LK', 'SR', 'SZ', 'TH', 'TL', 'TK', 'TO', 'TT', 'TC', 'TV', 'UG', 'GB', 'TZ', 'VI', 'ZM', 'ZW']
Et voici tous les pays où le trafic est droitier:
['AF', 'AX', 'AL', 'DZ', 'AS', 'AD', 'AO', 'AQ', 'AR', 'AM', 'AW', 'AT', 'AZ', 'BH', 'BY', 'BE', 'BZ', 'BJ', 'BO', 'BA', 'BV', 'BR', 'IO', 'BG', 'BF', 'BI', 'CV', 'KH', 'CM', 'CA', 'CF', 'TD', 'CL', 'CN', 'CO', 'KM', 'CG', 'CR', 'CI', 'HR', 'CU', 'CW', 'CZ', 'KP', 'CD', 'DK', 'DJ', 'DO', 'EC', 'EG', 'SV', 'GQ', 'ER', 'EE', 'ET', 'FO', 'FI', 'FR', 'GF', 'PF', 'TF', 'GA', 'GM', 'GE', 'DE', 'GH', 'GI', 'GR', 'GL', 'GP', 'GU', 'GT', 'GW', 'GN', 'HT', 'HM', 'VA', 'HN', 'HU', 'IS', 'IR', 'IQ', 'IL', 'IT', 'JO', 'KZ', 'KW', 'KG', 'LA', 'LV', 'LB', 'LR', 'LY', 'LI', 'LT', 'LU', 'MG', 'ML', 'MH', 'MQ', 'MR', 'YT', 'MX', 'FM', 'MC', 'MN', 'ME', 'MA', 'MM', 'NL', 'NC', 'NI', 'NG', 'NE', 'MP', 'NO', 'OM', 'PW', 'PA', 'PY', 'PE', 'PH', 'PL', 'PT', 'PR', 'QA', 'KR', 'MD', 'RE', 'RO', 'RU', 'RW', 'BL', 'MF', 'PM', 'SM', 'ST', 'SA', 'SN', 'RS', 'SL', 'BQ', 'SX', 'SK', 'SI', 'SS', 'ES', 'PS', 'SD', 'SJ', 'SE', 'CH', 'SY', 'TW', 'TJ', 'MK', 'TG', 'TN', 'TR', 'TM', 'UA', 'AE', 'UM', 'US', 'UY', 'UZ', 'VU', 'VE', 'VN', 'WF', 'EH', 'YE']
Par souci d'exhaustivité, voici un fichier CSV qui contient toutes les valeurs ainsi que les noms de pays.
Cas de test
En supposant que vous ayez choisi de générer L
un trafic pour gauchers, voici quelques cas de test valides:
'PY' -> 'python'
'PN' -> 'L'
'CN' -> 33
'GY' -> 'L'
Remarque: Il y a une petite chance que j'ai raté un pays ou qu'il y ait une mauvaise classification et je ne changerai pas les spécifications car cela pourrait invalider les réponses. Si j'ai fait une erreur, je m'excuse sincèrement, ne vous en offrez pas!
CountryData
peut donner la quantité de routes et de voies ferrées pavées et non pavées, etc. dans un pays, mais pas sa direction de trafic :(Réponses:
Python 2 ,
145136112109 octetsEssayez-le en ligne!
Sorties
-1
pour trafic droitier.La chaîne est générée automatiquement avec ce script Retina .Merci à totalement humain pour la chaîne de recherche plus courte de 9 octets. J'ai pu obtenir 24 octets de plus grâce à la suggestion AdmBorkBork .Obtenu la chaîne de recherche 3 octets plus court à l'aide d'un script python.
la source
OT
n'existent pas, pouvez-vous vous débarrasser de certains espaces commeTO TC
va àTOTC
?Gelée , 61 octets
Un grand merci à @ Mr.Xcoder pour m'avoir aidé à mettre cela ensemble.
Sauvegardé 1 octet grâce à @JonathanAllan
Retours
0
pour droitiers ou1
pour gauchers.Essayez-le en ligne!
Comment?
Nous convertissons chaque code de pays en un entier N en l'analysant en base 256 et en appliquant la fonction de hachage suivante, qui est sans collision pour le trafic gaucher vs droitier:
Cela conduit à la liste de valeurs suivante pour le trafic à gauche:
La différence moyenne entre deux entrées consécutives est proche de 8. Nous codons en delta la liste avec des incréments dans la plage [1 ... 16]. Cela signifie que chaque fois qu'un incrément est supérieur à 16, nous devons insérer une valeur intermédiaire sur un emplacement inutilisé (nous devons nous assurer qu'il n'est pas atteint par le trafic droitier). Mais la fonction de hachage a été choisie de telle manière que nous n'avons à le faire que pour quelques positions. Cela donne:
Nous convertissons cette liste de base bijective-16 en l'entier suivant:
qui devient
“ŒỴ¬Ʋ>r¤dị|®ædHẇ⁸ɗH^CŒ³ẇPḷgȤƲȥƓƑ®Ƭṅḅ4ṛḟṄ’
dans l'encodage base-250 de Jelly.Le premier lien reconstruit la liste d'origine à partir de cet entier et le second teste s'il contient le hachage de l'entrée.
la source
“ŒỴ¬Ʋ>r¤dị|®ædHẇ⁸ɗH^CŒ³ẇPḷgȤƲȥƓƑ®Ƭṅḅ4ṛḟṄ’ḃ⁴
(évitant ainsi l'incrément) ... aussi (pas une sauvegarde d'octet, mais)¢
appelle le dernier lien comme une nilade.PowerShell ,
161148 octetsEssayez-le en ligne!
Correspondance de motifs regexnaïfs. SortiesTrue
pour gaucher etFalse
droitier.Économisé 13 octets grâce au mercator jouant au regex.
la source
[CFHW][CJKSXY]
(-5), I et J en[IJ][DEMNP]
(-3), raccourcir N enN[AFP-Z]
(-1) et Z enZ.
(-4), pour un total de -13 octets. Nouvelle expression régulière =A[GIU]|B[BDMNSTW]|[CFHW][CJKSXY]|DM|G[BDGSY]|[IJ][DEMNP]|K[EINY]|L[CKS]|M[OS-WYZ]|N[AFP-Z]|P[GKN]|S[BCGHORZ]|T[CHKLOTVZ]|UG|V[CGI]|Z.
Haskell , 137 octets
-5 octets grâce aux ovs.
Essayez-le en ligne!
Généré la chaîne d'origine à la main.
la source
TTHSZWMSGSONPKNZMWVIDFKELSCYJPNFJMTVCXBNRBWSHKYAUGGYBTLCCKIMVGBSBBMZAINAGDMOBDIEJEMYMUNUPGSRLKTKTOTCTZ
SZAINAGGDMOAUGBBSCCKIMWSHKYLSBMVGSGYBDBTHBWBNRMZMTLCXSRTVCYPNFKNPKEFJMYVIDIEJPGJEMUNZWMSONULKTKTOTTCTZ
- Essayez-le en ligne!05AB1E ,
8268 octetsSorties 1 pour le trafic à gauche et 0 pour le trafic à droite.
Essayez-le en ligne! ou comme suite de tests
Utilise la chaîne générée par totalement humain et améliorée par les ovules
la source
05AB1E , 76 octets
Essayez-le en ligne!
Génère la chaîne suivante:
Si je divise cela sur des espaces et entrelace l'alphabet dans chaque chaîne, il en résulte tous les états qui conduisent sur le côté gauche.
1 pour la gauche, 0 pour la droite; Emigna est mieux, mais c'était assez différent pour poster :).
la source
Gelée , 69 octets
Un lien monadique prenant une liste de personnages et retournant
1
s'il est à gauche (0
si à droite).Essayez-le en ligne!
Comment?
Utilise la méthode telle qu'implémentée totalement humaine / ovs .
De plus, ce que j'ai fait indépendamment est arrivé à 72 octets :
Également un lien monadique prenant une liste de personnages et retournant
1
s'il est à gauche (0
si à droite).Essayez-le en ligne!
Comment?
la source
Befunge,
155152147146 octetsEssayez-le en ligne!
Sorties
80
pour un pays droitier, et toute autre chose indique un pays gaucher.Explication
La dernière ligne du code contient une représentation de tous les pays gauchers. Il s'agit d'une liste des premiers caractères des codes de pays, regroupés par leur deuxième caractère. La fin de chaque groupe est marquée par la mise en minuscule du dernier caractère du groupe.
Ainsi, par exemple, le premier groupe
Nz
,, représenteNA
etZA
. Le deuxième groupe,BSg
représenteBB
,SB
etGB
. Il existe un groupe pour chaque lettre de l'alphabet, à l'exception de la lettreQ
(aucun code de pays à gauche ne se termine parQ
). Ce groupe vide est représenté par le caractère{
, car cela ne correspondra évidemment à aucun code de pays valide.Pour déterminer si un code de pays donné correspond à l'une de ces entrées, nous parcourons la liste en vérifiant si l'un des caractères de la liste correspond au premier caractère de notre entrée (mod 32 pour tenir compte de la casse), et aussi que le groupe correspondant , correspond au deuxième caractère de l'entrée. Le caractère de groupe commence comme
A
et est incrémenté chaque fois que nous rencontrons une lettre minuscule dans la liste.Nous quittons lorsque nous trouvons une correspondance, produisant la dernière valeur de caractère sur la pile (qui sera le premier caractère du code de pays - éventuellement en minuscules). Sinon, nous quitterons lorsque nous aurons parcouru toute la liste, auquel cas nous afficherons le dernier numéro de la pile, qui est toujours 80.
la source
Lot Windows,
289279199193 193181130118 octetsSort la chaîne des ovs pour le trafic à gauche, sinon ne sort rien.
Remarque: J'ai remarqué que si l'entrée contient un code de pays dans la liste ci-dessus, elle affichera toujours L. Cependant, cela ne viole pas la règle de contestation car OP mentionné, seuls les codes de pays doivent être traités.
Explication:
la source
C (gcc) ,
181169165 octetsEssayez-le en ligne!
la source
82
pour enregistrer un octet?9
, par exemple, produirait un caractère de tabulation.Python 2 , 144 octets
Essayez-le en ligne!
Imprime
True
pour gauche,False
pour droite.la source
Retina ,
150117 bytesEssayez-le en ligne!
la source
Excel VBA, 118 octets
Fonction de fenêtre immédiate VBE anonyme qui prend l'entrée de la cellule
[A1]
et les sorties0
si le pays est droitierutilise la chaîne des ovs
la source
Japt,
12610097 octetsUtilise
lachaîne de recherche des ovstotalementhumains . Prend les entrées en minuscules et les sortiesfalse
pour RHD outrue
autre.Essayez-le
Tout entre les accents graves est la chaîne de recherche et compressés et en minuscules
ø
vérifie si elle contient l'entrée,U
.la source
Pyth ,
60575550474644 octetsExécuter en ligne
Prend l'entrée comme une chaîne entre guillemets majuscules (
'AI'
). Renvoie3
pour gauche et non3
pour droite.Comment ça marche
Générer la chaîne magique
la source
sed,
148 + 1145 + 1143 + 1142 + 1 octetsUn octet supplémentaire pour
-r
indicateur (expressions rationnelles étendues POSIX).Affiche une chaîne vide pour le trafic à gauche, le code de pays d'origine pour le trafic à droite.
Exemple:
Historique des modifications expliqué:
sed,
158 + 1155 + 1153 + 1152 + 1 octets, réponse non videLégère variation de la précédente. Retourne
L
pour le trafic gaucher.la source
J[^O]
place deJ[EMP]
?[^L]B|[^EMN]C|GD|[I-K]E|[AGPSUV]G|[AKV]I|FJ|[^DMS]K|TL|JM|[KP]N|JP|SR|[BGLW]S|[BT]T|AU|TV|CX|[CGK]Y|M[OS-WYZ]|N[AFP-Z]|[BI][DMNW]|[ST][HOZ]|Z.
J[^O]
était en fait une fois sur ma liste de petites expressions rationnelles, je me demande comment je l'ai raté. Merci de l'avoir signalé! Quant au regroupement par la deuxième lettre: en plus du regroupement par K, vous pouvez simplement utiliser|[AGPSUV]G
ou,|[BGLW]S
mais cela ne changera pas du tout le score total.APL (Dyalog) , 108 octets
Essayez-le en ligne!
Utilisation de la chaîne de recherche par ovs.
Circulation à gauche =
1
.Circulation à droite =
0
.la source
Javascript (ES6),
118116 octetsSauvegardé 2 octets grâce à @Craig Ayre
Résultats
null
pour trafic droitierCas de test
Afficher l'extrait de code
la source
String.prototype.match()
et faire désigner le trafic droitiernull
? Économiserait 2 octetsVIM,
117109108 frappesEssayez-le en ligne! (remplacer
SE
dans l'en-tête par le code du pays)␛
est la touche d'échappement. Le programme imprime le texte suivant pour le trafic droitier:Explication
la source
MY-BASIC , 162 octets
Fonction anonyme qui prend les entrées sous forme de chaîne non enveloppée (c'est-à-dire sans parenthèses) et les sorties vers la console
Retours
0
pour les droitiers et les1
gauchers, essayez-le en ligne!la source
Yabasic , 127 octets
Fonction anonyme qui prend l'entrée sous forme de chaîne non enveloppée (non
"..."
) et sort0
si le pays est droitier et1
si le pays est gaucher.Essayez-le en ligne!
la source
C (gcc) ,
115107 bytesEssayez-le en ligne!
Retourne
0
si gaucher. -4 merci à @JonathanFrechla source
short*
paramètre as?K, 105 octets
Pour plus d'informations sur les langues K / Q, voir code.kx.com
Utilisation: code pays (chaîne de 2 caractères, exemple "XY") après
Génère
1b
(trafic pour gauchers) ou0b
(pas pour trafic pour gauchers)Explication:
5h$"XX"
génère des codes ascii pour chaque caractère de la chaîne de 2 caractères (code pays), l'exemple5h$"TB"
génère 84 66-65+integerList
soustrayez 65 à chaque entier de la liste. L'exemple-65+5h$"TB"
génère 19 126/:integerList
calcule un entier équivalent à cette liste sous forme de chiffres en base 26. L'exemple26/:-65+5h$"TB"
génère 495 (code de pays sous forme d'entier)in[;listOfCountryCodesAsIntegers]@x
renvoie une valeur booléenne (1b = vrai, 0b = faux). Vrai si x est dans la liste+\-48+5h$"62<729151368=1>a1A23<6<C181A83?45;488F411112115:235Q43r141738353135247F42Tl<:"
calcule la liste des nombres entiers pour chaque code de pays avec trafic pour gauchers"62<729151368=1>a1A23<6<C181A83?45;488F411112115:235Q43r141738353135247F42Tl<:"
est la «chaîne de distance» (distance entre chaque paire de codes de pays entiers dans l'ordre croissant, codifiée en char). La distance n est codifiée comme ascii car 48 + n-48+5h$".."
calcule la valeur ascii de chaque caractère dans la chaîne ".." et récupère la distance d'origine sous forme de code ascii - 48. Le résultat est la liste des distances+\integerList
calcule la somme partielle des éléments de la liste -> codes absolus de pays entiers à partir des distances entre les codes.REMARQUES.-
0b
pour tout code de pays non gaucher, y compris les codes de pays non validesin[26/:-65+5h$"XX";+\-48+5h$"..."]
la source