Sua tarefa é escrever um programa, que, com uma lista de mensagens de bate-papo, conte quantas vezes cada pessoa recebe um ping, para que eu saiba o quão popular é todo mundo. Mas, como tenho que fazê-lo clandestinamente, preciso que seja o menor possível para ocultar o código.
Especificações
- A entrada vem em uma lista de 2 tuplas, com cada item no formato
("username", "message")
. - Um ping para outro usuário é definido como
@
seguido por três ou mais letras que se referem inequivocamente a esse usuário. - No entanto, você também deve considerar as respostas, que devem começar
:messageid
seguidas por um espaço. - Suponha que a primeira mensagem tenha id
0
e prossiga sequencialmente. - Faça a saída de cada usuário e diga quantas vezes cada um recebeu um ping.
- A saída pode estar em qualquer ordem / formato razoável.
- Isso é código-golfe , então o código mais curto em bytes vence!
Casos de teste
[["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
"Eu gosto de causar tristeza através de votos negativos." Você sabe que há apenas uma maneira adequada de responder a isso, certo? ;)
—
Geobits 29/02
Em que ponto estamos parando com as piadas "Alex está errado"?
—
Martin Ender
Uma resposta pode estar fora do alcance (por exemplo, a primeira mensagem iniciada com
—
Sp3000 29/02
:3
) ou um ping não satisfazendo nenhum usuário na sala (por exemplo @zzz
)?
Um usuário pingado ainda não pode ter postado uma mensagem quando pingado? por exemplo,
—
ETHproductions
[["Doorknob","@Alex is wrong"],["Alex","I am only slightly wrong"]]
entrada válida?
:0
dobra como um emoticon surpreso.