Właśnie dostałem pracę jako listonosz i potrzebuję twojej pomocy, aby ją utrzymać. Muszę zamówić wiele maili, zanim pójdę je dostarczyć.
Ulice są ponumerowane ściśle sekwencyjnie, zaczynając od 1 na początku ulicy i kontynuując w celu pominięcia żadnych liczb do końca, z nieparzystymi liczbami po lewej stronie i wyrównuje się po prawej stronie. Domy plus zostały dodane później, więc możemy również dołączyć litery do numeru obywatelskiego.
Skrzynia zawiera całą pocztę z miasta, więc muszę wybierać tylko maile z mojej ulicy.
Potrzebuję twojej pomocy, aby szybciej zamówić maile. Proszę o napisanie funkcji lub pełnego programu, biorąc:
- Nazwę ulicy.
- Lista liczb obywatelskich uporządkowanych wzdłuż mojej ścieżki.
- Lista adresów (reprezentujących skrzynkę pocztową).
I wypisz listę adresów zawierającą tylko adresy mojej ulicy, uporządkowane zgodnie z listą numerów obywatelskich.
Adres ma postać:
Person Name/n
CivicN Street Name
Gdzie CivicN to liczba, po której może następować „/” i LITER DUŻYCH (10 10 / B). Jeśli wolisz, małe litery są dopuszczalne.
Jeśli nazwy ulic nakładają się, są uważane za różne ulice:
Church Road != Saint Lorenz Church Road
Resztę adresu pomijamy dla uproszczenia (zakładając, że jest taki sam dla każdej poczty)
Listy muszą być dostarczane szybko, aby wygrała najkrótsza odpowiedź.
PRZYKŁAD:
Układ:
1 1/B 3 5 7 9 11 13
==============================
2 4 4/B 6
Wejście :
"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"]
Wynik :
Ms. Polly
2 Tea Avenue
Mrs. Pie O. Pinky
6 Tea Avenue
Ms. Kita I. Omeeha
6 Tea Avenue
Ollie E.
11 Tea Avenue
Wejście :
"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"]
Wynik :
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
Generator testowy: Wypróbuj online! Zmień string_wrapper_left / right i separator, aby zmodyfikować formatowanie.
Zasady:
- Standardowe luki są zabronione.
- Standardowe metody wejścia / wyjścia.
- Najkrótsza odpowiedź w bajtach wygrywa.
Odpowiedzi:
Galaretka , 13 bajtów
Pełny program akceptujący trzy argumenty - listę numerów obywatelskich na nazwanej ulicy, listę adresów w skrzynce pocztowej i nazwę ulicy - która drukuje adresy, na które należy podać, w kolejności podanych numerów obywatelskich .
Wypróbuj online!
W jaki sposób?
źródło
05AB1E ,
151312 bajtów-2 bajty przez przeniesienie galaretki @JonathanAllan na odpowiedź , więc upewnij się, że go głosujesz!
-1 bajt dzięki @Grimy .
Dane wejściowe są w kolejności: [lista numerów obywatelskich], nazwa ulicy, [lista adresów].
Wypróbuj online.
Wyjaśnienie:
źródło
JavaScript (Node.js) , 58 bajtów
Wypróbuj online!
Skomentował
źródło
Rubinowy , 65 bajtów
Wypróbuj online!
źródło
Perl 5 , 51 bajtów
Wypróbuj online!
źródło
$
kotwicę na końcu wyrażenia regularnegoC # (interaktywny kompilator Visual C #) , 63 bajty
Wypróbuj online!
źródło
Python 3, 79
85bajtów (dzięki kałamarnicy )stary:
źródło
Python 3 , 65 bajtów
Wypróbuj online!
Działa również w Python 2.
Dla każdego numeru
i
na liście numerów obywatelskichn
funkcja będzie iterować po wszystkich adresacha
na liście pocztym
i zachowa te, w których kombinacja numeru obywatelskiegoi
i nazwy ulicys
pasujea
. Powoduje to posortowanie i przefiltrowanie listy.źródło
Kotlin , 145 bajtów
Wypróbuj online!
źródło