Eine Person hat zwei Vornamen, wenn ihr Nachname auch ein gebräuchlicher Vorname ist. Sie müssen feststellen, welche vollständigen Namen in einer Liste zwei Vornamen sind.
John Smith
John Doe
Luke Ryan
Ryan Johnson
Jenna Jackson
Tom John
Jeder Name, der in der Vorname-Spalte vorkommt, ist möglicherweise ein Vorname. Wenn die Anzahl der Vorkommen des Namens in der Vorname-Spalte größer ist als die Anzahl der Vorkommen in der Nachname-Spalte, handelt es sich definitiv um einen Vornamen.
In der obigen Liste John
erscheint zweimal in den Vornamen und einmal in den Nachnamen, so dass es definitiv ein Vorname ist. Ryan
taucht einmal im ersten und einmal im letzten auf, es handelt sich also (wahrscheinlich) um einen Vornamen.
Daher hat Tom John
definitiv zwei Vornamen und Luke Ryan
wahrscheinlich auch.
In Anbetracht der obigen Liste sollte Ihr Code Folgendes ausgeben:
Luke Ryan has two first names
Tom John definitely has two first names
Eingang
Wie oben erwähnt, enthält Ihr Code eine Liste mit vollständigen Namen (von der Standardeingabe einen pro Zeile), die durch Leerzeichen getrennt sind. Namen können Bindestriche oder Apostrophe enthalten, aber Sie erhalten niemals einen Vor- oder Nachnamen, der Leerzeichen enthält (dh nein Liam De Rosa
, aber Liam De-Rosa
oder Liam De'Rosa
sind faires Spiel. Mit anderen Worten, Namen stimmen überein [-'A-Za-z]+
.
Jeder vollständige Name ist eindeutig (dh er John Smith
erscheint nicht zweimal).
Ausgabe
Geben Sie die vollständigen Namen (einmal pro Zeile) aus, gefolgt von entweder has two first names
oder definitely has two first names
wenn sie die oben genannten Kriterien erfüllen. Namen sollten nur einmal gedruckt werden.
Namen, die nicht zwei Vornamen sind, müssen nicht gedruckt werden.
Sie müssen die Groß- und Kleinschreibung und die Sonderzeichen des Namens beibehalten.
Beispiele
Eingang
Madison Harris
Riley Hudson
Addison Hills
Riley Phillips
Scott Hill
Levi Murphy
Hudson Wright
Nathan Baker
Harper Brooks
Chloe Morris
Aubrey Miller
Hudson Lopez
Samuel Owen
Wyatt Victoria
Brooklyn Cox
Nathan Murphy
Ryan Scott
Ausgabe
Riley Hudson definitely has two first names
Ryan Scott has two first names
Eingang
Owen Parker
Daniel Hall
Cameron Hall
Sofia Watson
Mia Murphy
Ryan Jones
Emily Ramirez
Ausgabe
[no output]
Eingang
Olivia Robinson
Jacob van-Dyke
Jacob Ella
Brayden De'Rosa
Levi Brook
Brook Bella
Ella Hill
Ella Anderson
Brook-Anne van-Dyke
Ausgabe
Jacob Ella definitely has two first names
Levi Brook has two first names
Notizen und Scoring
- Das ist Code Golf. Die niedrigste Punktzahl (Bytes) gewinnt.
- Es gelten Standardlücken .
Viel Glück!
Johnson
alsJohn
, oder ist es anders?Johnson
wäre anders alsJohn
. Namen müssen genau übereinstimmen.definitely has two first names
undhas two first names
? Es kann immer einer von denen sein?definitely
Wird nur angezeigt, wenn der Name öfter in der Spalte Vorname als in der Spalte Nachname vorkommt. Dieser Fall überschreibt, also nur Anzeigedefinitely has two first names
. Schauen Sie sich die Beispiele an.Antworten:
Java (OpenJDK 8) ,
238222221220212 BytesProbieren Sie es online!
quelle
k=j=q=0
. Außerdem werden Ihnen keine Bytes gespart, aber Sie können letzterex+=y?1:0
durch ersetzenif(y)x++
. Wenn Sie wie ich die Lesbarkeit nach Länge optimieren möchten, ist dies wahrscheinlich der richtige Weg.String
undint
direkt (in die for-Schleife)l->{for(String n:l){int k=0,j=0,q=0;for(String b=n.split(" ")[1];k<l.length;j+=l[k++].matches(b+" .*")?1:0)q+=l[k].endsWith(" "+b)?1:0;if(j>0)System.out.println(n+(j>q?" definitely":"")+" has two first names");}}
Python 2 ,
141137132130 Bytes-2 Bytes dank @JonathanFrech
Probieren Sie es online!
quelle
-c<1
kann sein~c
, wiec
es scheint, nie positiv zu werden.AWK ,
127123 BytesSpeichern von 1 Byte, indem der integrierte
NR
Wert nicht verwendet wird.Probieren Sie es online!
quelle
Perl 5 ,
120118 + 2 (-al
) = 120 BytesProbieren Sie es online!
quelle
Ruby ,
105129 Bytes+24 Bytes, weil ich einen Teil der Spezifikation verpasst habe
Probieren Sie es online!
quelle
Python 2 ,
140127122131 BytesProbieren Sie es online!
quelle
05AB1E, 144 Byte (In Arbeit)
quelle
05AB1E ,
5351 BytesProbieren Sie es online!
Erläuterung
Oder
51 bis49 Byte, unter der Annahme von Standard-E / A-Regeln (Ein- und Ausgabe als Arrays)Probieren Sie es online!
quelle
PHP, 172 Bytes
Nimmt Namen als separate Befehlszeilenargumente.
Lauf mit
-nr
oder versuche es online .quelle
Python 3, 187 Bytes
quelle
R , 207 Bytes
Probieren Sie es online!
quelle
JavaScript (ES6), 149 Byte
E / A enthält nachgestellte Zeilenumbrüche. Weitgehend inspiriert von der Antwort von @ RobertoGraham.
quelle
Haskell ,
144140139 BytesProbieren Sie es online!
quelle
PowerShell, 176 Byte
quelle