Schreiben Sie eine Funktion oder ein Programm, das bei Angabe einer Liste von Namen eine Liste ausgibt oder zurückgibt, in der Duplikate von Vornamen eine eindeutige verkürzte Version ihres Nachnamens haben.
Eingang:
Eine Liste von Namen, bei der ein Name durch einen bestimmten Namen und ein durch ein Leerzeichen getrennter Nachname definiert ist. Namen sind nicht leere Zeichenfolgen, die nur Groß- und Kleinbuchstaben enthalten. Die Liste kann ein Array von Zeichenfolgen oder die Namen sein, die durch ein konstantes Nicht-Alpha-Zeichen ohne Leerzeichen getrennt sind. Die Ausgabe muss jedoch dasselbe Format wie die Eingabe haben.
Ausgabe:
Eine Liste der eingegebenen Namen in derselben Reihenfolge und demselben Format wie die Eingabe, die durch diese Regeln geändert wurden:
- Geben Sie für eindeutige Vornamen nur den Vornamen aus
- Für Namen mit demselben Vornamen:
- Fügen Sie neben dem Vornamen die kürzeste eindeutige Version ihres Nachnamens hinzu, die nicht von einem anderen Namen geteilt wird, gefolgt von einem Punkt. Zum Beispiel:
John Clancy, John SmithwirdJohn C.,John S.undJames Brown, James BrattewirdJames Bro.,James Bra. - Wenn ein Nachname eine Teilmenge eines anderen ist, z. B.
Julian King,Julian Kingsleyden vollständigen Nachnamen des kleineren ohne Punkt zurückgeben. Das Beispiel würde werdenJulian King,Julian King.
- Fügen Sie neben dem Vornamen die kürzeste eindeutige Version ihres Nachnamens hinzu, die nicht von einem anderen Namen geteilt wird, gefolgt von einem Punkt. Zum Beispiel:
- Grundsätzlich stellt ein Punkt den regulären Ausdruck dar
.+, bei dem nur ein Name mit ihm übereinstimmen sollte. - Sie können davon ausgehen, dass niemand denselben Vor- und Nachnamen hat
- Bei Namen wird zwischen Groß- und Kleinschreibung unterschieden
Testfälle:
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
Dies ist Code-Golf , daher gewinnt die niedrigste Byteanzahl für jede Sprache.
Angela C.im Testfall?
JulieHoppla sein, danke. Behoben