Напишіть програму або функцію, яка містить рядок, що містить лише символи ^
та v
(ви можете припустити, що інших символів не буде). Прочитайте зліва направо цей рядок представляє послідовність клацань миші, здійснених одним користувачем під час першого перегляду питання або відповіді щодо обміну стеками .
Кожен ^
являє собою клацання кнопки оновлення, і кожен v
означає натискання кнопки знищення . (Для робочих прикладів дивіться трохи ліворуч.)
Припустимо, що жодних обмежень для голосування не діє, тому всі кліки зареєстровані правильно.
Роздрукувати або повернути:
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? Я щільний де? Що відбувається?