Votre tâche consiste à écrire un programme qui, compte tenu d'une liste de messages de discussion, compte le nombre de fois où chaque personne reçoit un ping, afin que je sache à quel point tout le monde est populaire. Mais, comme je dois le faire subrepticement, j'ai besoin qu'il soit aussi petit que possible pour pouvoir cacher le code.
Spécifications
- L'entrée est fournie dans une liste de 2 tuples, chaque élément étant du formulaire
("username", "message")
. - Un ping vers un autre utilisateur est défini comme un
@
suivi de 3 lettres ou plus qui se réfère sans ambiguïté à cet utilisateur. - Cependant, vous devez également considérer les réponses, qui doivent commencer par
:messageid
suivi d'un espace. - Supposons que le premier message ait un identifiant
0
et continuez séquentiellement. - Sortez chaque utilisateur et dites combien de fois chacun a reçu un ping.
- La sortie peut être dans n'importe quel ordre / format raisonnable.
- C'est le code-golf , donc le code le plus court en octets gagne!
Cas de test
[["AlexA.", "I am wrong"], ["Quartatoes", "@Alex you are very wrong"], ["AlexA.", ":1 I am only slightly wrong"]]
AlexA.: 1
Quartatoes: 1
[["Doorknob", "I have never eaten an avocad."], ["AquaTart", ":0 I will ship you an avocad"], ["AlexA.", ":0 this is shocking"]]
Doorknob: 2
AquaTart: 0
AlexA.: 0
[["Geobits", "I like causing sadness through downvotes."], ["Flawr", "I want to put random message ids in my chat messages :0 askjdaskdj"]]
Geobits: 0
Flawr: 0
[["Downgoat", "goatigfs.com/goatgif"], ["Downotherthing", "@Downgoat cool gifs"], ["Dennis", "@Down cool gifs this is an ambiguous ping"]]
Downgoat: 1
Downotherthing: 0
Dennis: 0
:3
) ou un ping ne satisfaisant aucun utilisateur dans la salle (par exemple @zzz
)?
[["Doorknob","@Alex is wrong"],["Alex","I am only slightly wrong"]]
une entrée valide?
:0
double émoticône surprise.