Escriba una función o programa que, cuando se le da una lista de nombres, genera o devuelve una lista donde los duplicados de nombres de pila tienen una versión abreviada única de su apellido.
Entrada:
Una lista de nombres, donde un nombre se define por un nombre y un apellido separados por un espacio. Los nombres son cadenas no vacías que contienen solo letras mayúsculas y minúsculas. La lista puede ser una matriz de cadenas, o los nombres separados por un carácter constante no alfa, sin espacio, pero la salida debe estar en el mismo formato que la entrada.
Salida:
Una lista de los nombres ingresados en el mismo orden y formato que la entrada que han sido modificados por estas reglas:
- Para nombres de pila únicos, escriba solo el nombre de pila
- Para nombres que comparten el mismo nombre de pila:
- Además de su nombre de pila, agregue la versión única más corta de su apellido que no sea compartida por otro nombre, seguido de un punto. Por ejemplo: se
John Clancy, John Smith
convierteJohn C.,John S.
y seJames Brown, James Bratte
convierte enJames Bro.,James Bra.
- Si un apellido es un subconjunto de otro, por ejemplo
Julian King,Julian Kingsley
, devuelve el apellido completo del más pequeño sin un punto. El ejemplo se convertiríaJulian King,Julian King.
- Además de su nombre de pila, agregue la versión única más corta de su apellido que no sea compartida por otro nombre, seguido de un punto. Por ejemplo: se
- Básicamente, un punto representa la expresión regular
.+
, donde solo un nombre debe coincidir. - Puede suponer que nadie compartirá el mismo nombre de pila y el mismo apellido.
- Los nombres distinguen entre mayúsculas y minúsculas
Casos de prueba:
John Clancy,Julie Walker,John Walker,Julie Clancy
->John C.,Julie W.,John W.,Julie C.
Julian King,Jack Johnson,Julian Kingsley
>Julian King,Jack,Julian King.
Jack Brown,Jack Black,Jack Blue
>Jack Br.,Jack Bla.,Jack Blu.
John Storm,Jon Snow,Johnny Storm
>John,Jon,Johnny
Jill DeSoma,Jill Desmond
>Jill DeS.,Jill Des.
XxXnO sCOppeXxX,XxXNO MERCYXxX
>XxXnO,XxXNO
Este es el código de golf , por lo que gana el conteo de bytes más bajo para cada idioma.
Angela C.
viene el en el caso de prueba?
Julie
, gracias. Solucionado