Escreva uma função ou programa que, ao receber uma lista de nomes, produza ou retorne uma lista em que duplicatas de nomes próprios tenham uma versão abreviada exclusiva de seu sobrenome.
Entrada:
Uma lista de nomes, onde um nome é definido por um nome e um sobrenome separados por um espaço. Os nomes são cadeias não vazias que contêm apenas letras maiúsculas e minúsculas. A lista pode ser uma matriz de seqüências de caracteres ou os nomes separados por um caractere não-alfa e não-espaço constante, mas a saída deve estar no mesmo formato da entrada.
Resultado:
Uma lista dos nomes inseridos na mesma ordem e formato que a entrada que foi modificada por estas regras:
- Para nomes exclusivos, digite apenas o nome
- Para nomes que compartilham o mesmo nome:
- Além do nome fornecido, adicione a versão mais curta e exclusiva do sobrenome, que não seja compartilhada por outro nome, seguida por um ponto. Por exemplo:
John Clancy, John Smith
torna - seJohn C.,John S.
eJames Brown, James Bratte
torna - seJames Bro.,James Bra.
- Se um sobrenome for um subconjunto de outro, como, por exemplo
Julian King,Julian Kingsley
, retorne o sobrenome completo do menor sem um período. O exemplo se tornariaJulian King,Julian King.
- Além do nome fornecido, adicione a versão mais curta e exclusiva do sobrenome, que não seja compartilhada por outro nome, seguida por um ponto. Por exemplo:
- Basicamente, um ponto representa a regex
.+
, onde apenas um nome deve corresponder a ele. - Você pode assumir que ninguém compartilhará o mesmo nome e o mesmo sobrenome
- Os nomes diferenciam maiúsculas de minúsculas
Casos de teste:
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
Isso é código-golfe , então a contagem de bytes mais baixa para cada idioma vence.
Angela C.
vem o caso de teste?
Julie
oops, obrigado. Corrigido