Ich habe gerade einen Job als Postbote bekommen und ich brauche deine Hilfe, um ihn zu behalten. Ich muss viele Mails bestellen, bevor ich sie ausliefern kann.
Die Straßen sind streng fortlaufend nummeriert, beginnend mit 1 am Anfang der Straße und weiter, um bis zum Ende keine Zahlen zu überspringen, mit ungeraden Zahlen auf der linken Seite und sogar auf der rechten Seite. Außerdem wurden später Häuser hinzugefügt, sodass möglicherweise auch Buchstaben an die Bürgennummer angehängt werden.
Die Truhe enthält alle Post der Stadt, so dass ich nur Mails meiner Straße auswählen muss.
Ich brauche deine Hilfe, um die Mails schneller zu bestellen. Ich bitte Sie, eine Funktion oder ein vollständiges Programm zu schreiben, das Folgendes enthält:
- Einen Straßennamen.
- Eine Liste von Bürgernummern, die nach meinem Weg bestellt wurden.
- Eine Liste von Adressen (die die Postkiste darstellen).
Und geben Sie eine Liste von Adressen aus, die nur die meiner Straße enthält, geordnet nach der Liste der Bürgernummern.
Eine Adresse hat die Form:
Person Name/n
CivicN Street Name
Wobei CivicN eine Zahl ist, auf die ein '/' und ein Großbuchstabe (10 10 / B) folgen können. Wenn Sie es vorziehen, ist Kleinbuchstaben akzeptabel.
Wenn sich Straßennamen überschneiden, werden sie als unterschiedliche Straßen betrachtet:
Church Road != Saint Lorenz Church Road
Der Einfachheit halber wird der Rest der Adresse weggelassen (vorausgesetzt, er ist für jede Mail gleich).
Briefe müssen schnell zugestellt werden, damit die kürzeste Antwort gewinnt.
BEISPIEL:
Layout :
1 1/B 3 5 7 9 11 13
==============================
2 4 4/B 6
Eingabe:
"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"]
Ausgabe :
Ms. Polly
2 Tea Avenue
Mrs. Pie O. Pinky
6 Tea Avenue
Ms. Kita I. Omeeha
6 Tea Avenue
Ollie E.
11 Tea Avenue
Eingabe:
"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"]
Ausgabe :
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
Testgenerator: Probieren Sie es online aus! Ändern Sie string_wrapper_left / right und das Trennzeichen, um die Formatierung zu ändern.
Regeln:
- Standardlücken sind verboten.
- Standardeingabe- / Ausgabemethoden.
- Die kürzeste Antwort in Bytes gewinnt.
Antworten:
Gelee , 13 Bytes
Ein vollständiges Programm, das drei Argumente akzeptiert - eine Liste der Bürgernummern in Ihrer benannten Straße, eine Liste der Adressen in der Postkiste und Ihren Straßennamen -, die die Adressen druckt, an die Sie in der Reihenfolge der angegebenen Bürgernummern liefern müssen .
Probieren Sie es online aus!
Wie?
quelle
05AB1E ,
151312 Bytes-2 Bytes durch Portieren von @JonathanAllans Jelly-Antwort , also stellen Sie sicher, dass Sie ihn positiv bewerten!
-1 Byte dank @Grimy .
Die Eingaben erfolgen in der Reihenfolge: [Liste der Bürgernummern], Straßenname, [Liste der Adressen].
Probieren Sie es online aus.
Erläuterung:
quelle
JavaScript (Node.js) , 58 Byte
Probieren Sie es online aus!
Kommentiert
quelle
Ruby , 65 Bytes
Probieren Sie es online aus!
quelle
Perl 5 , 51 Bytes
Probieren Sie es online aus!
quelle
$
Anker am Ende der Regex hinzufügenC # (Visual C # Interactive Compiler) , 63 Byte
Probieren Sie es online aus!
quelle
Python 3, 79
85Bytes (dank Tintenfisch )alt:
quelle
Python 3 , 65 Bytes
Probieren Sie es online aus!
Funktioniert auch in Python 2.
Für jede Nummer
i
in der Liste dern
Bürgernummern durchläuft die Funktion alle Adressena
in der Mail-Listem
und behält diejenigen bei, mit denen die Kombination aus Bürgernummeri
und Straßennames
übereinstimmta
. Dies führt zu einer sortierten und gefilterten Liste.quelle
Kotlin , 145 Bytes
Probieren Sie es online aus!
quelle