Su tarea es escribir un programa que, dado una lista de mensajes de chat, cuente cuántas veces se pincha a cada persona, para que pueda saber cuán populares son todos. Pero, dado que tengo que hacerlo subrepticiamente, necesito que sea lo más pequeño posible para poder ocultar el código.
Especificaciones
- La entrada viene en una lista de 2 tuplas, con cada elemento de la forma
("username", "message")
. - Un ping a otro usuario se define como
@
seguido de 3 o más letras que se refieren inequívocamente a ese usuario. - Sin embargo, también debe considerar las respuestas, que deben comenzar con
:messageid
un espacio seguido. - Suponga que el primer mensaje tiene identificación
0
y proceda secuencialmente. - Envíe a cada usuario y diga cuántas veces se pinchó a cada uno.
- La salida puede estar en cualquier orden / formato razonable.
- Este es el código de golf , por lo que gana el código más corto en bytes
Casos de prueba
[["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
"Me gusta causar tristeza a través de votos negativos". Sabes que solo hay una manera adecuada de responder a eso, ¿verdad? ;)
—
Geobits
¿En qué punto nos detenemos con los chistes de "Alex está equivocado"?
—
Martin Ender
¿Puede una respuesta estar fuera de alcance (por ejemplo, primer mensaje que comienza con
—
Sp3000
:3
) o un ping que no satisface a ningún usuario en la sala (por ejemplo @zzz
)?
¿Puede un usuario marcado aún no haber publicado un mensaje cuando está marcado? por ejemplo, ¿es
—
ETHproductions
[["Doorknob","@Alex is wrong"],["Alex","I am only slightly wrong"]]
una entrada válida?
:0
funciona como un emoticón sorprendido.