Acabei de conseguir um emprego como carteiro e preciso da sua ajuda para mantê-lo. Tenho que pedir muitos e-mails antes de entregá-los.
As ruas são numeradas estritamente em sequência, começando com 1 no início da rua e continuando para não pular números até o final, com números ímpares no lado esquerdo e nivelados no lado direito. Mais casas foram adicionadas mais tarde, para que também possamos ter letras anexadas ao número cívico.
O baú contém todas as cartas da cidade, então eu tenho que escolher apenas cartas da minha rua.
Preciso da sua ajuda para encomendar os e-mails mais rapidamente. O que eu peço é que você escreva uma função ou programa completo usando:
- Um nome de rua.
- Uma lista de números cívicos ordenados seguindo meu caminho.
- Uma lista de endereços (representando o baú do correio).
E imprima uma lista de endereços contendo apenas os da minha rua, ordenados após a lista de números cívicos.
Um endereço tem o formato:
Person Name/n
CivicN Street Name
Onde CivicN é um número que pode ser seguido por um '/' e uma LETRA MAIÚSCULAR (10 10 / B). Se preferir, minúsculas é aceitável.
Se os nomes de ruas se sobrepuserem, serão consideradas ruas diferentes:
Church Road != Saint Lorenz Church Road
Omitimos o restante do endereço por simplicidade (supondo que seja o mesmo para todos os e-mails)
As cartas devem ser entregues rapidamente, para que as respostas mais curtas sejam vencidas.
EXEMPLO:
Layout:
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"]
Resultado :
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"]
Resultado :
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
Gerador de teste: Experimente online! Altere string_wrapper_left / right e separator para modificar a formatação.
Regras:
- Falhas padrão são proibidas.
- Métodos padrão de entrada / saída.
- Menor resposta em bytes ganha.
Respostas:
Gelatina , 13 bytes
Um programa completo que aceita três argumentos - uma lista de números cívicos na sua rua nomeada, uma lista dos endereços no baú do correio e seu nome da rua - que imprime os endereços nos quais você precisa entregar na ordem dos números cívicos especificados .
Experimente online!
Quão?
fonte
05AB1E ,
151312 bytes-2 bytes, portando a resposta de @JonathanAllan Jelly , por isso não deixe de votar nele!
-1 byte graças a @Grimy .
As entradas estão na ordem: [lista de números cívicos], nome da rua, [lista de endereços].
Experimente online.
Explicação:
fonte
JavaScript (Node.js) , 58 bytes
Experimente online!
Comentado
fonte
Ruby , 65 bytes
Experimente online!
fonte
Perl 5 , 51 bytes
Experimente online!
fonte
$
âncora no final da regexC # (compilador interativo do Visual C #) , 63 bytes
Experimente online!
fonte
Python 3, 79
85bytes (graças ao squid )velho:
fonte
Python 3 , 65 bytes
Experimente online!
Também funciona em Python 2.
Para cada número
i
na lista de números cívicosn
, a função irá percorrer todos os endereçosa
da lista de correspondênciam
e manterá aqueles onde a combinação do número cívicoi
e o nome da ruas
coincidir coma
. Isso resulta em uma lista classificada e filtrada.fonte
Kotlin , 145 bytes
Experimente online!
fonte