Esse é um desafio no qual duas pessoas, 1 e 2, estão concorrendo ao cargo. As pessoas votam deterministicamente de certas maneiras no mundo de 1 e 2, o que pode permitir que os candidatos descubram os resultados antes da eleição.
NOTA: isso não se refere a eleições externas ou outros eventos políticos.
Duas pessoas estão concorrendo ao cargo. Chamaremos essas pessoas de 1 e 2. Como os dois querem saber se vencerão a eleição, decidem usar seu conhecimento das pessoas e algum código para descobrir qual será o resultado. Devido ao desejo de minimizar os gastos do governo, o código precisa ser o mais curto possível.
Sua tarefa: Dada uma série de pessoas com base em como estão votando, identifique quem vence a eleição.
Existem cinco tipos de pessoas no mundo divertido e emocionante de 1 e 2:
A
: pessoas que definitivamente votarão em 1.B
: pessoas que definitivamente votarão em 2.X
: pessoas que votarão em quem votará na pessoa à esquerda. Se não houver uma pessoa à sua esquerda, eles votam em quem quer que a pessoa à sua direita vote. Se não estiver claro em quem a pessoa à sua direita está votando, ela não votará.Y
: as pessoas votam o oposto da pessoa à sua esquerda. Se não houver uma pessoa à sua esquerda, eles votam oposto de quem está à sua direita. Se não estiver claro em quem a pessoa à sua direita está votando, ela não votará.N
: pessoas que não votam.
Isso é avaliado da esquerda para a direita.
Exemplo:
Quem está sendo "avaliado" está em minúsculas, para maior clareza.
Input: `XXAYAN`
xX Votes for whoever their friend is voting for. Their friend has not decided yet, so it is unclear, so they do not vote.
Xx Person to left is voting "none" so votes "none."
a Votes for 1
Ay Since person on left is voting for 1, votes for 2.
a Votes for 1
n Does not vote
Enquete final:
2 pessoas votaram em 1
1 pessoas votaram em 2
3 pessoas não votaram
1 tem mais votos, então 1 ganha!
Casos de teste:
Você pode usar outros caracteres ou valores como entrada e saída, desde que sejam distintos. (Por exemplo: números em vez de letras, letras diferentes, letras minúsculas, verdade / falsidade ou positivo / negativo (para saída), etc.)
Input -> Output
"AAAA" -> 1
"BBBB" -> 2
"BBAXY" -> 2
"BAXYBNXBAYXBN" -> 2
"XXAYAN" -> 1
"AAAABXXXX" -> 2
"AXNXXXXAYB" -> 1
"NANNY" -> 1
"XA" -> 1
"YAB" -> 2
"XY" -> anything (do not need to handle test cases with no victor)
"AB" -> anything (do not need to handle test cases with no victor)
none
is the opposite of none
, if the behavior for NY
in the comments is correct.
XA
, XB
, YA
and YB
.