Je viens de décrocher un emploi de facteur et j'ai besoin de votre aide pour le garder. Je dois commander beaucoup de mails avant de sortir pour les livrer.
Les rues sont numérotées de façon strictement séquentielle, en commençant par 1 au début de la rue, et en continuant dans l'ordre pour ne sauter aucun numéro jusqu'à la fin, avec des nombres impairs sur le côté gauche et les mêmes sur le côté droit. De plus, des maisons ont été ajoutées plus tard afin que nous puissions également ajouter des lettres au numéro civique.
Le coffre contient tout le courrier de la ville donc je dois choisir uniquement les mails de ma rue.
J'ai besoin de votre aide pour commander les courriers plus rapidement. Ce que je vous demande, c'est d'écrire une fonction ou un programme complet en prenant:
- Un nom de rue.
- Une liste de numéros civiques commandés suivant mon chemin.
- Une liste d'adresses (représentant le coffre de courrier).
Et sortir une liste d'adresses ne contenant que celles de ma rue, ordonnées suivant la liste des numéros civiques.
Une adresse a la forme:
Person Name/n
CivicN Street Name
Où CivicN est un nombre qui peut être suivi d'un '/' et d'une LETTRE MAJUSCULE (10 10 / B). Si vous préférez, les minuscules sont acceptables.
Si les noms de rues se chevauchent, ils sont considérés comme des rues différentes:
Church Road != Saint Lorenz Church Road
Nous omettons le reste de l'adresse pour plus de simplicité (en supposant que c'est la même chose pour chaque mail)
Les lettres doivent être livrées rapidement pour que la réponse la plus courte l'emporte.
EXEMPLE:
Disposition :
1 1/B 3 5 7 9 11 13
==============================
2 4 4/B 6
Contribution :
"Tea Avenue"
["1","1/B","2","4","3","5","7","4/B","6","9","11","13"]
["Mrs. Pie O. Pinky\n6 Tea Avenue","Ms. Kita I. Omeeha\n6 Tea Avenue","Mr. Raile A. Lee\n26 Uea Grove","Odd O. Nic\n76 Mira Road","Mrs. Fuel Tee\n78 Uea Grove","Ny O. Ondip\n55 Uea Grove","Mrs. Black\n67 Uea Grove","Ollie E.\n11 Tea Avenue","Mr. Urna Li\n75 Mira Road","Ms. Polly\n2 Tea Avenue"]
Production :
Ms. Polly
2 Tea Avenue
Mrs. Pie O. Pinky
6 Tea Avenue
Ms. Kita I. Omeeha
6 Tea Avenue
Ollie E.
11 Tea Avenue
Contribution :
"Church Road"
["1","3","5","5/B","2","4","7","7/B","6","9","9/B","11","11/B"]
["Billy Ray V.\n5 Church Roadside East","Ms. Mia\n5 Church Road","Mrs. Dadeos\n9/B Church Road","Dr. Ymin U.\n3 Church Road","Atty. Nerou\n3 Church Road","Ollie A. Chaim\n6 Saint Lorenz Church Road","Ms. Rose\n5 Church Road","Alf Taohy\n79 Berry Road","Ms. Ootr E.\n5 Saint Lorenz Church Road","Lol E.\n21 Berry Road","Ms. Norton\n2 Church Road"]
Production :
Dr. Ymin U.
3 Church Road
Atty. Nerou
3 Church Road
Ms. Mia
5 Church Road
Ms. Rose
5 Church Road
Ms. Norton
2 Church Road"
Mrs. Dadeos
9/B Church Road
Générateur de test: essayez-le en ligne! Changez string_wrapper_left / right et séparateur pour modifier la mise en forme.
Règles:
- Les failles standard sont interdites.
- Méthodes d'entrée / sortie standard.
- La réponse la plus courte en octets gagne.
Réponses:
Gelée , 13 octets
Un programme complet acceptant trois arguments - une liste de numéros civiques sur votre rue nommée, une liste des adresses dans le coffre de courrier et votre nom de rue - qui imprime les adresses auxquelles vous devez livrer dans l'ordre des numéros civiques donnés .
Essayez-le en ligne!
Comment?
la source
05AB1E ,
151312 octets-2 octets en portant la réponse Jelly de @JonathanAllan , alors assurez-vous de lui donner un vote positif!
-1 octet grâce à @Grimy .
Les entrées sont dans l'ordre: [liste des numéros civiques], nom de la rue, [liste des adresses].
Essayez-le en ligne.
Explication:
la source
JavaScript (Node.js) , 58 octets
Essayez-le en ligne!
Commenté
la source
Ruby , 65 octets
Essayez-le en ligne!
la source
Perl 5 , 51 octets
Essayez-le en ligne!
la source
$
ancre à la fin de l'expression régulièreC # (Visual C # Interactive Compiler) , 63 octets
Essayez-le en ligne!
la source
Python 3, 79
85octets (grâce à Squid )vieux:
la source
Python 3 , 65 octets
Essayez-le en ligne!
Fonctionne également en Python 2.
Pour chaque numéro
i
de la liste des numéros civiquesn
, la fonction itérera sur toutes les adressesa
de la liste de courrierm
et conservera celles où la combinaison du numéro civiquei
et du nom de la rues
corresponda
. Il en résulte une liste triée et filtrée.la source
Kotlin , 145 octets
Essayez-le en ligne!
la source