Napisz funkcję lub program, który otrzyma listę imion, wyświetli lub zwróci listę, w której duplikaty imion mają unikalną skróconą wersję ich nazwiska.
Wejście:
Lista nazwisk, w której nazwa jest zdefiniowana przez dane imię i nazwisko oddzielone spacją. Nazwy to niepuste ciągi znaków zawierające tylko wielkie i małe litery. Lista może być tablicą ciągów lub nazw oddzielonych stałym znakiem innym niż alfa, spacją, ale dane wyjściowe muszą być w tym samym formacie co dane wejściowe.
Wynik:
Lista wprowadzonych nazw w tej samej kolejności i formacie, co dane zmodyfikowane przez te reguły:
- W przypadku unikalnych podanych nazw wyślij tylko podaną nazwę
- W przypadku nazw o tej samej podanej nazwie:
- Oprócz ich imienia i nazwiska dodaj najkrótszą unikalną wersję ich nazwiska, która nie jest współdzielona przez inne nazwisko, a następnie kropka. Na przykład:
John Clancy, John Smithstaje sięJohn C.,John S.iJames Brown, James BrattestajeJames Bro.,James Bra. - Jeśli jedno nazwisko jest podzbiorem drugiego, na przykład
Julian King,Julian Kingsleyzwróć pełne nazwisko mniejszego bez kropki. Przykład stałby sięJulian King,Julian King.
- Oprócz ich imienia i nazwiska dodaj najkrótszą unikalną wersję ich nazwiska, która nie jest współdzielona przez inne nazwisko, a następnie kropka. Na przykład:
- Zasadniczo kropka reprezentuje regex
.+, przy czym tylko jedna nazwa powinna do niego pasować. - Możesz założyć, że nikt nie będzie miał tego samego imienia i nazwiska
- W nazwach rozróżniana jest wielkość liter
Przypadki testowe:
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,JohnnyJill DeSoma,Jill Desmond>Jill DeS.,Jill Des.XxXnO sCOppeXxX,XxXNO MERCYXxX>XxXnO,XxXNO
To jest golf golfowy , więc wygrywa najniższa liczba bajtów dla każdego języka.
Angela C.pochodzi przypadek testowy?
Julieups, dzięki. Naprawiono