Это проблема, в которой два человека, 1 и 2, баллотируются на должность. Люди определенно голосуют определенным образом в мире 1 и 2, что может позволить кандидатам выяснить результаты до выборов.
ПРИМЕЧАНИЕ: это не относится к каким-либо внешним выборам или другим политическим событиям.
Два человека баллотируются на должность. Мы назовем этих людей 1 и 2. Поскольку они оба хотят знать, победят ли они на выборах, они решают использовать свои знания людей и некоторый код, чтобы выяснить, каков будет результат. Из-за желания минимизировать государственные расходы, код должен быть максимально коротким.
Ваша задача: учитывая ряд людей, основываясь на том, как они голосуют, выведите, кто победит на выборах.
В веселом и захватывающем мире 1 и 2 есть пять видов людей:
A
: люди, которые обязательно проголосуют за 1.B
: люди, которые обязательно проголосуют за 2.X
: люди, которые будут голосовать за того, за кого проголосует человек слева. Если слева от них нет никого, они голосуют за того, за кого будет голосовать тот, кто справа. Если неясно, за кого голосует человек, за которого они имеют право, они не голосуют.Y
: люди будут голосовать против человека слева от себя. Если слева от них нет людей, они голосуют против тех, кто находится справа от них. Если неясно, за кого голосует человек, за которого они имеют право, они не голосуют.N
: люди, которые не голосуют.
Это оценивается слева направо.
Пример:
Для ясности, кто бы ни был «оценен», строчными буквами.
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
Финальный опрос:
2 человек проголосовали за 1
1 человек проголосовали за 2
3 человека не проголосовали
1 имеет наибольшее количество голосов, поэтому 1 выигрывает!
Тестовые случаи:
Вы можете использовать другие символы или значения в качестве ввода и вывода, если они различны. (Например: цифры вместо букв, разные буквы, строчные буквы, истина / ложь или положительный / отрицательный (для вывода) и т. Д.)
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
это противоположно none
, если поведение NY
в комментариях правильное.
XA
, XB
, YA
и YB
.