Acabo de conseguir un trabajo como cartero y necesito tu ayuda para mantenerlo. Tengo que pedir muchos correos antes de salir a entregarlos.
Las calles están numeradas estrictamente secuencialmente, comenzando con 1 al comienzo de la calle, y continuando en orden sin omitir ningún número hasta el final, con números impares en el lado izquierdo y pares en el lado derecho. Más casas se agregaron más tarde, por lo que también podemos tener letras agregadas al número cívico.
El cofre contiene todo el correo de la ciudad, así que tengo que elegir solo los correos de mi calle.
Necesito tu ayuda para ordenar los correos más rápido. Lo que le pido es que escriba una función o un programa completo tomando:
- Un nombre de calle.
- Una lista de números cívicos ordenados siguiendo mi camino.
- Una lista de direcciones (que representa el cofre de correo).
Y generar una lista de direcciones que contiene solo las de mi calle, ordenadas siguiendo la lista de números cívicos.
Una dirección tiene la forma:
Person Name/n
CivicN Street Name
Donde CivicN es un número que puede ser seguido por un '/' y una LETRA MAYÚSCULA (10 10 / B). Si lo prefiere, se aceptan minúsculas.
Si los nombres de calles se superponen, se consideran calles diferentes:
Church Road != Saint Lorenz Church Road
Omitimos el resto de la dirección por simplicidad (suponiendo que sea la misma para cada correo)
Las cartas deben entregarse rápidamente para que gane la respuesta más corta.
EJEMPLO:
Diseño :
1 1/B 3 5 7 9 11 13
==============================
2 4 4/B 6
Entrada:
"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"]
Salida:
Ms. Polly
2 Tea Avenue
Mrs. Pie O. Pinky
6 Tea Avenue
Ms. Kita I. Omeeha
6 Tea Avenue
Ollie E.
11 Tea Avenue
Entrada:
"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"]
Salida:
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
Generador de prueba: ¡ Pruébelo en línea! Cambie string_wrapper_left / right y separator para modificar el formato.
Reglas:
- Las lagunas estándar están prohibidas.
- Métodos de entrada / salida estándar.
- La respuesta más corta en bytes gana.
Respuestas:
Jalea , 13 bytes
Un programa completo que acepta tres argumentos: una lista de números cívicos en su calle nombrada, una lista de las direcciones en el buzón de correo y el nombre de su calle, que imprime las direcciones a las que debe entregar en el orden de los números cívicos dados .
Pruébalo en línea!
¿Cómo?
fuente
05AB1E ,
151312 bytes-2 bytes portando la respuesta Jelly de @JonathanAllan , ¡así que asegúrate de votarlo!
-1 byte gracias a @Grimy .
Las entradas están en el orden: [lista de números cívicos], nombre de la calle, [lista de direcciones].
Pruébalo en línea.
Explicación:
fuente
JavaScript (Node.js) , 58 bytes
Pruébalo en línea!
Comentado
fuente
Ruby , 65 bytes
Pruébalo en línea!
fuente
Perl 5 , 51 bytes
Pruébalo en línea!
fuente
$
ancla al final de la expresión regularC # (compilador interactivo de Visual C #) , 63 bytes
Pruébalo en línea!
fuente
Python 3, 79
85bytes (gracias a calamar )antiguo:
fuente
Python 3 , 65 bytes
Pruébalo en línea!
También funciona en Python 2.
Para cada número
i
en la lista de números cívicosn
, la función iterará sobre todas las direccionesa
en la lista de correom
y mantendrá aquellas donde coincida la combinación del número cívicoi
y el nombre de la calle . Esto da como resultado una lista ordenada y filtrada.s
a
fuente
Kotlin , 145 bytes
Pruébalo en línea!
fuente