Questa è una sfida in cui due persone, 1 e 2, sono in corsa per l'ufficio. Le persone votano deterministicamente in alcuni modi nel mondo di 1 e 2, il che può consentire ai candidati di capire i risultati prima delle elezioni.
NOTA: ciò non significa riferirsi a elezioni esterne o altri eventi politici.
Due persone sono in corsa per l'ufficio. Chiameremo queste persone 1 e 2. Poiché entrambi vogliono sapere se vinceranno le elezioni, decidono di usare la loro conoscenza delle persone e del codice per capire quale sarà il risultato. A causa della volontà di minimizzare la spesa pubblica, il codice deve essere il più breve possibile.
Il tuo compito: data una serie di persone in base al modo in cui votano, uscita chi vince le elezioni.
Esistono cinque tipi di persone nel mondo divertente ed eccitante di 1 e 2:
A
: persone che voteranno sicuramente per 1.B
: persone che voteranno sicuramente per 2.X
: le persone che voteranno per chiunque voterà per la persona alla loro sinistra. Se non c'è nessuna persona alla sua sinistra, allora voterà per chi voterà per la persona alla sua destra. Se non è chiaro per chi sta votando la persona alla loro destra, allora non votano.Y
: le persone voteranno il contrario della persona alla loro sinistra. Se non c'è nessuno alla loro sinistra, allora votano al contrario di chiunque sia alla loro destra. Se non è chiaro per chi sta votando la persona alla loro destra, allora non votano.N
: persone che non votano.
Questo viene valutato da sinistra a destra.
Esempio:
Chiunque venga "valutato" è in minuscolo, per chiarezza.
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
Sondaggio finale:
2 persone hanno votato per 1
1 persone hanno votato per 2
3 persone non hanno votato
1 ha il maggior numero di voti, quindi 1 vince!
Casi test:
È possibile utilizzare altri caratteri o valori come input e output, purché siano distinti. (Ad esempio: numeri anziché lettere, lettere diverse, lettere minuscole, verità / falsa o positivo / negativo (per output), ecc.)
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
è l'opposto di none
, se il comportamento indicato NY
nei commenti è corretto.
XA
, XB
, YA
e YB
.