Đây là một thách thức trong đó hai người, 1 và 2, đang chạy cho văn phòng. Mọi người nhất định bỏ phiếu theo những cách nhất định trong thế giới 1 và 2, điều này có thể cho phép các ứng cử viên tìm ra kết quả trước cuộc bầu cử.
LƯU Ý: điều này không có nghĩa là đề cập đến bất kỳ cuộc bầu cử bên ngoài hoặc các sự kiện chính trị khác.
Hai người đang chạy cho văn phòng. Chúng tôi sẽ gọi những người này là 1 và 2. Vì cả hai đều muốn biết liệu họ sẽ giành chiến thắng trong cuộc bầu cử hay không, họ quyết định sử dụng kiến thức về mọi người và một số mã để tìm hiểu kết quả sẽ ra sao. Do muốn giảm thiểu chi tiêu của chính phủ, mã cần phải ngắn nhất có thể.
Nhiệm vụ của bạn: Đưa ra một chuỗi người dựa trên cách họ bỏ phiếu, đầu ra ai là người chiến thắng trong cuộc bầu cử.
Có năm loại người trong thế giới vui vẻ và thú vị của 1 và 2:
A
: những người chắc chắn sẽ bỏ phiếu cho 1.B
: những người chắc chắn sẽ bỏ phiếu cho 2.X
: những người sẽ bỏ phiếu cho bất cứ ai bên trái của họ sẽ bỏ phiếu cho. Nếu không có người ở bên trái của họ, thì họ bỏ phiếu cho bất cứ ai mà người bên phải của họ sẽ bỏ phiếu. Nếu không rõ ai là người có quyền bầu cử cho họ, thì họ không bỏ phiếu.Y
: mọi người sẽ bỏ phiếu ngược lại với người bên trái của họ. Nếu không có ai ở bên trái của họ, thì họ bỏ phiếu ngược lại với bất cứ ai ở bên phải của họ. Nếu không rõ ai là người có quyền bầu cử cho họ, thì họ không bỏ phiếu.N
: những người không bỏ phiếu.
Điều này được đánh giá từ trái sang phải.
Thí dụ:
Bất cứ ai đang được "đánh giá" là chữ thường, cho rõ ràng.
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
Cuộc thăm dò cuối cùng:
2 người bình chọn cho 1
1 người bình chọn cho 2
3 người không bỏ phiếu
1 có nhiều phiếu bầu nhất, vì vậy 1 chiến thắng!
Các trường hợp thử nghiệm:
Bạn có thể sử dụng các ký tự hoặc giá trị khác làm đầu vào và đầu ra, miễn là chúng khác biệt. (Ví dụ: số thay vì chữ cái, chữ cái khác nhau, chữ thường, chữ thật / giả hoặc dương / âm (đối với đầu ra), v.v.)
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
ngược lại none
, nếu hành vi NY
trong các bình luận là chính xác.
XA
, XB
, YA
và YB
.