Я только что получил работу почтальона, и мне нужна твоя помощь, чтобы сохранить ее. Мне нужно заказать много писем, прежде чем я отправлю их.
Улицы нумеруются строго последовательно, начиная с 1 в начале улицы и продолжая в порядке, пропуская номера до конца, с нечетными номерами на левой стороне и четными на правой стороне. Плюс дома были добавлены позже, поэтому к гражданскому номеру также могут быть добавлены буквы.
Сундук содержит всю почту города, поэтому мне приходится выбирать только почту моей улицы.
Мне нужна ваша помощь, чтобы заказать письма быстрее. Я прошу вас написать функцию или полную программу:
- Название улицы.
- Список гражданских номеров, упорядоченных по моему пути.
- Список адресов (представляющих почтовый сундук).
И вывести список адресов, содержащих только адреса моей улицы, упорядоченные по списку гражданских номеров.
Адрес имеет форму:
Person Name/n
CivicN Street Name
Где CivicN - это число, за которым следует знак «/» и верхняя буква (10 10 / B). Если вы предпочитаете, нижний регистр является приемлемым.
Если названия улиц перекрываются, они считаются разными улицами:
Church Road != Saint Lorenz Church Road
Мы опускаем остальную часть адреса для простоты (при условии, что он одинаков для каждого письма)
Письма должны быть доставлены быстро, поэтому самый короткий ответ выигрывает.
ПРИМЕР:
Макет:
1 1/B 3 5 7 9 11 13
==============================
2 4 4/B 6
Вход:
"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"]
Выход :
Ms. Polly
2 Tea Avenue
Mrs. Pie O. Pinky
6 Tea Avenue
Ms. Kita I. Omeeha
6 Tea Avenue
Ollie E.
11 Tea Avenue
Вход:
"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"]
Выход :
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
Тестовый генератор: попробуйте онлайн! Измените string_wrapper_left / right и разделитель, чтобы изменить форматирование.
Правила:
- Стандартные лазейки запрещены.
- Стандартные методы ввода / вывода.
- Кратчайший ответ в байтах побеждает.
Ответы:
Желе , 13 байт
Полная программа, принимающая три аргумента - список гражданских номеров на вашей названной улице, список адресов в почтовом ящике и название вашей улицы - который печатает адреса, по которым вам нужно доставить, в порядке заданных гражданских номеров ,
Попробуйте онлайн!
Как?
источник
05AB1E ,
151312 байт-2 байта, портируя ответ Jelly @JonathanAllan , так что не забудьте его поддержать!
-1 байт благодаря @Grimy .
Входные данные расположены в следующем порядке: [список гражданских номеров], название улицы, [список адресов].
Попробуйте онлайн.
Объяснение:
источник
JavaScript (Node.js) , 58 байт
Попробуйте онлайн!
комментарии
источник
Рубин , 65 байт
Попробуйте онлайн!
источник
Perl 5 , 51 байт
Попробуйте онлайн!
источник
$
якоря в конце регулярного выраженияC # (интерактивный компилятор Visual C #) , 63 байта
Попробуйте онлайн!
источник
Python 3, 79
85байт (благодаря squid )старый:
источник
Python 3 , 65 байт
Попробуйте онлайн!
Также работает в Python 2.
Для каждого числа
i
в списке гражданских чиселn
функция будет перебирать все адресаa
в списке почтыm
и сохранять те, где комбинация гражданского числаi
s
совпадает и названия улицыa
. Это приводит к сортировке и фильтрации списка.источник
Котлин , 145 байт
Попробуйте онлайн!
источник