Este es un desafío en el que dos personas, 1 y 2, se postulan para un cargo. La gente vota de manera determinista de ciertas maneras en el mundo de 1 y 2, lo que puede permitir que los candidatos descubran los resultados antes de las elecciones.
NOTA: esto no pretende referirse a elecciones externas u otros eventos políticos.
Dos personas se postulan para un cargo. Llamaremos a estas personas 1 y 2. Como ambos quieren saber si ganarán las elecciones, deciden usar su conocimiento de las personas y algún código para determinar cuál será el resultado. Debido al deseo de minimizar el gasto del gobierno, el código debe ser lo más breve posible.
Su tarea: dada una serie de personas en función de cómo están votando, salida que gana las elecciones.
Hay cinco tipos de personas en el divertido y emocionante mundo de 1 y 2:
A
: personas que definitivamente votarán por 1.B
: personas que definitivamente votarán por 2.X
: las personas que votarán por quien votará la persona a su izquierda. Si no hay una persona a su izquierda, entonces votan por quien votará la persona a su derecha. Si no está claro por quién vota la persona a su derecha, entonces no votan.Y
: la gente votará lo contrario de la persona a su izquierda. Si no hay una persona a su izquierda, entonces votan lo contrario de quien está a su derecha. Si no está claro por quién vota la persona a su derecha, entonces no votan.N
: personas que no votan.
Esto se evalúa de izquierda a derecha.
Ejemplo:
Quien está siendo "evaluado" está en minúsculas, para mayor claridad.
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
Encuesta final:
2 personas votaron por 1
1 personas votaron por 2
3 personas no votaron
¡1 tiene la mayoría de los votos, entonces 1 gana!
Casos de prueba:
Puede usar otros caracteres o valores como entrada y salida, siempre que sean distintos. (Por ejemplo: números en lugar de letras, letras diferentes, letras minúsculas, verdadero / falso o positivo / negativo (para salida), 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
es lo contrario de none
, si el comportamiento de NY
los comentarios es correcto.
XA
, XB
, YA
y YB
.