名前のリストが指定されたときに、指定された名前の重複が姓の一意の短縮バージョンを持つリストを出力または返す関数またはプログラムを作成します。
入力:
名前のリスト。名前は、スペースで区切られた名と姓で定義されます。名前は、大文字と小文字のみを含む空でない文字列です。リストは、文字列の配列、または定数を非アルファ、非スペース文字で区切った名前にすることができますが、出力は入力と同じ形式である必要があります。
出力:
これらの規則によって変更された、入力と同じ順序および形式の入力された名前のリスト:
- 一意の名の場合、名のみを出力します
- 同じ名前を共有する名前の場合:
- 彼らの名に加えて、別の名前と共有されていない姓の最も短い一意のバージョンを追加し、その後にピリオドを付けます。たとえば、次の
John Clancy, John Smith
ようJohn C.,John S.
にJames Brown, James Bratte
なりますJames Bro.,James Bra.
- ある姓が別の姓のサブセットである場合(など)
Julian King,Julian Kingsley
、ピリオドなしの小さい姓の完全な姓を返します。例は次のようになりますJulian King,Julian King.
- 彼らの名に加えて、別の名前と共有されていない姓の最も短い一意のバージョンを追加し、その後にピリオドを付けます。たとえば、次の
- 基本的には期間が正規表現を表し
.+
、唯一 1名がそれと一致している必要があります。 - あなたは誰も同じ名と同じ姓を共有しないと仮定するかもしれません
- 名前は大文字と小文字が区別されます
テストケース:
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
これはcode-golfであるため、各言語の最小バイト数が優先されます。
関連、関連(@Laikoniに感謝)。サンドボックスポスト
—
ジョーキング
Angela C.
テストケースのどこから来ますか?
であることを意味し
—
ジョーキング
Julie
おっと、感謝します。修正済み