Viết chương trình hoặc hàm chỉ có một chuỗi chứa các ký tự ^
và v
(bạn có thể cho rằng sẽ không có ký tự nào khác). Đọc từ trái sang phải chuỗi này biểu thị chuỗi lần nhấp chuột của một người dùng được thực hiện trong khi xem câu hỏi hoặc câu trả lời Stack Exchange lần đầu tiên.
Mỗi ^
đại diện cho một lần nhấp của nút upvote và mỗi lần v
đại diện cho một lần nhấp vào nút downvote . (Đối với các ví dụ làm việc trông hơi trái.)
Giả sử rằng không có giới hạn bỏ phiếu nào có hiệu lực để tất cả các lần nhấp được đăng ký chính xác.
In hoặc trả lại:
1
hoặc+1
nếu bài đăng kết thúc được nâng cấp.0
nếu bài đăng kết thúc không được bình chọn. (-0
và+0
không hợp lệ)-1
nếu bài viết kết thúc bị hạ cấp.
Bài viết bắt đầu với số phiếu không từ người dùng và các nút thay đổi số phiếu ròng như sau:
Net Votes Before Button Pressed Net Votes After
1 ^ 0
1 v -1
0 ^ 1
0 v -1
-1 ^ 1
-1 v 0
Mã ngắn nhất tính bằng byte thắng.
Các trường hợp thử nghiệm:
[empty string] -> 0
^^ -> 0
^v -> -1
^ -> 1
v -> -1
v^ -> 1
vv -> 0
^^^ -> 1
vvv -> -1
^^^^ -> 0
vvvv -> 0
^^^^^ -> 1
vvvvv -> -1
^^^^^^ -> 0
vvvvvv -> 0
^^v -> -1
^v^ -> 1
^vv -> 0
vv^ -> 1
v^v -> -1
v^^ -> 0
^vvv^^vv^vv^v^ -> 1
^vvv^^vv^vv^v^^ -> 0
^vvv^^vv^vv^v^^^ -> 1
^vvv^^vv^vv^v^^v -> -1
^vvv^^vv^vv^v^^vv -> 0
^vvv^^vv^vv^v^^vvv -> -1
^vvvvvvvvvvvv -> 0
^^vvvvvvvvvvvv -> 0
^^^vvvvvvvvvvvv -> 0
vvv^^^^^^^^^^^^ -> 0
vv^^^^^^^^^^^^ -> 0
v^^^^^^^^^^^^ -> 0
^
nhân vật có thể gây ra thay đổi điểm -1, +1 hoặc +2? Tôi dày đặc ở đâu? Chuyện gì đang xảy ra vậy?