Bir ad listesi verildiğinde, verilen adların kopyalarının soyadının benzersiz bir kısaltılmış sürümüne sahip olduğu bir liste çıktısı veren veya döndüren bir işlev veya program yazın.
Giriş:
Bir adın, belirli bir adla ve soyadıyla boşlukla ayrılmış olarak tanımlandığı adların listesi. Adlar, yalnızca büyük ve küçük harf içeren boş olmayan dizelerdir. Liste bir dizeler dizisi olabilir veya sabit bir alfa olmayan, boşluk olmayan karakterle ayrılmış adlar olabilir, ancak çıktı girdiyle aynı biçimde olmalıdır.
Çıktı:
Girilen adların, bu kurallar tarafından değiştirilen girdiyle aynı sırada ve biçimde bir listesi:
- Benzersiz verilen adlar için yalnızca belirtilen adı girin
- Aynı adı taşıyan adlar için:
- Adlarının yanı sıra, soyadlarının başka bir adla paylaşılmayan en kısa benzersiz sürümünü ve ardından bir nokta ekleyin. Örneğin:
John Clancy, John Smith
olurJohn C.,John S.
veJames Brown, James Bratte
olurJames Bro.,James Bra.
- Bir soyadı, örneğin diğerinin alt kümesiyse
Julian King,Julian Kingsley
, küçük adın tam soyadını bir nokta olmadan döndürün. Örnek olurJulian King,Julian King.
- Adlarının yanı sıra, soyadlarının başka bir adla paylaşılmayan en kısa benzersiz sürümünü ve ardından bir nokta ekleyin. Örneğin:
- Temel olarak nokta
.+
, yalnızca bir adın eşleşmesi gereken normal ifadeyi temsil eder . - Hiç kimsenin hem aynı adı hem de aynı soyadını paylaşmayacağını varsayabilirsiniz.
- İsimler büyük / küçük harfe duyarlıdır
Test Durumları:
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
Bu kod golf , bu nedenle her dil için en düşük bayt sayısı kazanır.
Angela C.
Test davasında nereden geliyor?
Julie
, teşekkürler. Düzeltildi