Напишите программу или функцию, которая принимает строку, содержащую только символы ^
и v
(вы можете предположить, что других символов не будет). Читайте слева направо, эта строка представляет последовательность щелчков мышью, сделанных одним пользователем при первом просмотре вопроса или ответа по Stack Exchange .
Каждый ^
представляет щелчок кнопки upvote и каждый v
представляет щелчок кнопки downvote . (Для рабочих примеров посмотрите немного влево.)
Предположим, что ограничения для голосования не действуют, поэтому все клики зарегистрированы правильно.
Распечатать или вернуть:
1
или+1
если сообщение заканчивается голосованием.0
если сообщение заканчивается тем, что за него не проголосовали. (-0
и+0
не действительны)-1
если пост в конечном итоге будет опущен.
Сообщения начинаются с нуля чистых голосов от пользователя, а кнопки изменяют чистые голоса следующим образом:
Net Votes Before Button Pressed Net Votes After
1 ^ 0
1 v -1
0 ^ 1
0 v -1
-1 ^ 1
-1 v 0
Самый короткий код в байтах побеждает.
Тестовые случаи:
[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
^
персонаж может вызвать изменение балла -1, +1 или +2? Где я? В чем дело?