Scrivi una funzione o un programma che, quando viene fornito un elenco di nomi, genera o restituisce un elenco in cui i duplicati di determinati nomi hanno una versione abbreviata univoca del loro cognome.
Ingresso:
Un elenco di nomi, in cui un nome è definito da un determinato nome e un cognome separati da uno spazio. I nomi sono stringhe non vuote contenenti solo lettere maiuscole e minuscole. L'elenco può essere una matrice di stringhe oppure i nomi sono separati da un carattere non alfa e non spaziale costante, ma l'output deve essere nello stesso formato dell'input.
Produzione:
Un elenco dei nomi immessi nello stesso ordine e formato dell'input che sono stati modificati da queste regole:
- Per nomi dati univoci, emetti solo il nome dato
- Per i nomi che condividono lo stesso nome dato:
- Oltre al nome, aggiungi la versione univoca più breve del cognome che non è condivisa da un altro nome, seguita da un punto. Ad esempio:
John Clancy, John SmithdiventaJohn C.,John S.eJames Brown, James BrattediventaJames Bro.,James Bra. - Se un cognome è un sottoinsieme di un altro, ad esempio
Julian King,Julian Kingsley, restituisce il cognome completo di quello più piccolo senza punto. L'esempio sarebbe diventatoJulian King,Julian King.
- Oltre al nome, aggiungi la versione univoca più breve del cognome che non è condivisa da un altro nome, seguita da un punto. Ad esempio:
- Fondamentalmente un punto rappresenta la regex
.+, dove solo un nome dovrebbe corrispondere ad esso. - Si può presumere che nessuno condividerà sia lo stesso nome che lo stesso cognome
- I nomi fanno distinzione tra maiuscole e minuscole
Casi test:
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
Questo è code-golf , quindi vince il numero di byte più basso per ogni lingua.
Angela C.viene nel caso di test?
Julieoops, grazie. Risolto