Napisz program lub funkcję, która pobiera ciąg zawierający tylko znaki ^
i v
(możesz założyć, że nie będzie innych znaków). Ten ciąg znaków odczytywany od lewej do prawej reprezentuje sekwencję kliknięć myszą wykonanych przez jednego użytkownika podczas przeglądania pytania lub odpowiedzi Stack Exchange po raz pierwszy.
Każde ^
oznacza kliknięcie przycisku głosowania , a każde v
oznacza kliknięcie przycisku głosowania . (Dla przykładów roboczych spójrz lekko w lewo.)
Załóżmy, że nie obowiązują żadne ograniczenia głosowania, więc wszystkie kliknięcia są rejestrowane poprawnie.
Wydrukuj lub zwróć:
1
lub+1
jeśli post zostanie ostatecznie oceniony.0
jeśli post nie zostanie poddany głosowaniu. (-0
i+0
nie są ważne)-1
jeśli post zostanie ostatecznie odrzucony.
Wpisy zaczynają się od zerowej liczby głosów netto od użytkownika, a przyciski zmieniają liczbę głosów w następujący sposób:
Net Votes Before Button Pressed Net Votes After
1 ^ 0
1 v -1
0 ^ 1
0 v -1
-1 ^ 1
-1 v 0
Najkrótszy kod w bajtach wygrywa.
Przypadki testowe:
[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
^
postać może spowodować zmianę wyniku -1, +1 lub +2? Gdzie jestem gęsty? Co się dzieje?