Jest to wyzwanie, w którym dwie osoby, 1 i 2, ubiegają się o urząd. Ludzie deterministycznie głosują w określony sposób w świecie 1 i 2, co może pozwolić kandydatom na zorientowanie się w wynikach przed wyborami.
UWAGA: nie dotyczy to żadnych wyborów zewnętrznych ani innych wydarzeń politycznych.
Dwie osoby biegną do biura. Zadzwonimy do tych osób 1 i 2. Ponieważ oboje chcą wiedzieć, czy wygrają wybory, decydują się wykorzystać swoją wiedzę o ludziach i trochę kodu, aby dowiedzieć się, jaki będzie wynik. Ze względu na chęć zminimalizowania wydatków rządowych kod musi być możliwie jak najkrótszy.
Twoje zadanie: Biorąc pod uwagę liczbę osób na podstawie tego, jak głosują, wyjdź, kto wygra wybory.
W zabawnym i ekscytującym świecie 1 i 2 jest pięć rodzajów ludzi:
A
: osoby, które zdecydowanie zagłosują na 1.B
: osoby, które zdecydowanie zagłosują na 2.X
: osoby, które będą głosować na osobę po ich lewej, będą głosować na. Jeśli po ich lewej stronie nie ma żadnej osoby, wówczas głosują na każdego, kto będzie głosował po ich prawej stronie. Jeśli nie jest jasne, na kogo osoba po ich prawach głosuje, wówczas nie głosuje.Y
: ludzie będą głosować przeciwnie do osoby po lewej stronie. Jeśli po ich lewej stronie nie ma żadnej osoby, wówczas głosują przeciw temu, kto ma rację. Jeśli nie jest jasne, na kogo osoba po ich prawach głosuje, wówczas nie głosuje.N
: ludzie, którzy nie głosują.
Jest to oceniane od lewej do prawej.
Przykład:
Ktokolwiek jest „oceniany”, jest napisany małymi literami, dla jasności.
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
Ostatnia ankieta:
2 osoby głosowały na 1
1 osoba głosowała na 2
3 osoby nie głosowały
1 ma najwięcej głosów, więc 1 wygrywa!
Przypadki testowe:
Możesz używać innych znaków lub wartości jako danych wejściowych i wyjściowych, o ile są one odrębne. (Na przykład: liczby zamiast liter, różne litery, małe litery, prawda / fałsz lub dodatnie / ujemne (na wyjściu) itp.)
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
jest odwrotnie none
, jeśli zachowanie NY
w komentarzach jest prawidłowe.
XA
, XB
, YA
i YB
.