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 voznacza 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óć:
1lub+1jeśli post zostanie ostatecznie oceniony.0jeśli post nie zostanie poddany głosowaniu. (-0i+0nie są ważne)-1jeś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?