Une personne a deux prénoms si son nom est également un prénom commun. Vous devez déterminer quels noms complets dans une liste sont deux prénoms.
John Smith
John Doe
Luke Ryan
Ryan Johnson
Jenna Jackson
Tom John
Tout nom figurant dans la colonne du prénom est potentiellement un prénom. Si le nombre d'occurrences du nom dans la colonne du prénom est supérieur au nombre d'occurrences dans la colonne du dernier nom, c'est définitivement un prénom.
Dans la liste ci-dessus, John
apparaît deux fois dans les prénoms et une fois dans les noms de famille, c'est donc définitivement un prénom. Ryan
apparaît une fois dans le premier et une fois dans le dernier donc c'est (probablement) un prénom.
Par conséquent, a Tom John
certainement deux prénoms et Luke Ryan
probablement.
Compte tenu de la liste ci-dessus, votre code devrait générer ce qui suit:
Luke Ryan has two first names
Tom John definitely has two first names
Contribution
Comme mentionné ci-dessus, votre code prendra une liste de noms complets (à partir de l'entrée standard, un par ligne) séparés par des espaces. Les noms peuvent inclure des traits d'union ou des apostrophes, mais vous ne recevrez jamais un prénom ou un nom de famille qui comprend des espaces (c'est-à-dire non Liam De Rosa
, mais Liam De-Rosa
ou qui Liam De'Rosa
sont équitables. En d'autres termes, les noms correspondront [-'A-Za-z]+
.
Chaque nom complet sera unique (c'est John Smith
-à- dire qu'il n'apparaîtra pas deux fois).
Production
Imprimez les noms complets des noms (une fois par ligne) suivis par has two first names
ou definitely has two first names
s'ils répondent aux critères ci-dessus. Les noms ne doivent être imprimés qu'une seule fois.
Les noms qui ne sont pas deux prénoms n'ont pas besoin d'être imprimés.
Vous devez conserver la casse et les caractères spéciaux du nom.
Exemples
Contribution
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
Production
Riley Hudson definitely has two first names
Ryan Scott has two first names
Contribution
Owen Parker
Daniel Hall
Cameron Hall
Sofia Watson
Mia Murphy
Ryan Jones
Emily Ramirez
Production
[no output]
Contribution
Olivia Robinson
Jacob van-Dyke
Jacob Ella
Brayden De'Rosa
Levi Brook
Brook Bella
Ella Hill
Ella Anderson
Brook-Anne van-Dyke
Production
Jacob Ella definitely has two first names
Levi Brook has two first names
Notes et notation
- C'est le golf de code. Le score le plus bas (octets) l'emporte.
- des échappatoires standard s'appliquent.
Bonne chance!
Johnson
que ça compteJohn
ou est-ce différent?Johnson
serait différent deJohn
. Les noms doivent correspondre exactement.definitely has two first names
ethas two first names
? Cela peut toujours être l'un d'entre eux?definitely
si le nom apparaît plus de fois dans la colonne du prénom que dans la colonne du nom. Ce cas est prioritaire, donc uniquement affichédefinitely has two first names
. Découvrez les exemples.Réponses:
Java (OpenJDK 8) ,
238222221220212 octetsEssayez-le en ligne!
la source
k=j=q=0
. En outre, cela ne vous fera économiser aucun octet, mais vous pouvez remplacer ce dernierx+=y?1:0
parif(y)x++
. Si vous aimez optimiser la lisibilité après la longueur comme moi, c'est probablement la voie à suivre.String
etint
directement (dans la boucle for):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 ,
141137132 132130 octets-2 octets grâce à @JonathanFrech
Essayez-le en ligne!
la source
-c<1
peut l'être~c
, carc
il ne semble jamais devenir positif.AWK ,
127123 octetsEnregistrement de 1 octet en n'utilisant pas la
NR
valeur intégrée .Essayez-le en ligne!
la source
Perl 5 ,
120118 + 2 (-al
) = 120 octetsEssayez-le en ligne!
la source
Ruby ,
105129 bytes+24 octets parce que j'ai raté une partie de la spécification
Essayez-le en ligne!
la source
Python 2 ,
140127122 122131 octetsEssayez-le en ligne!
la source
05AB1E, 144 octets (travaux en cours)
la source
05AB1E ,
5351 octetsEssayez-le en ligne!
Explication
Ou
5149 octets, en supposant des règles d'E / S standard (entrée et sortie sous forme de tableaux)Essayez-le en ligne!
la source
PHP, 172 octets
prend les noms comme arguments de ligne de commande séparés.
Exécutez
-nr
ou essayez-le en ligne .la source
Python 3, 187 octets
la source
R , 207 octets
Essayez-le en ligne!
la source
JavaScript (ES6), 149 octets
Les E / S incluent la nouvelle ligne de fin. Largement inspiré par la réponse de @ RobertoGraham.
la source
Haskell ,
144140139 octetsEssayez-le en ligne!
la source
PowerShell, 176 octets
la source