Ecrivez un programme ou une fonction qui prend une chaîne contenant uniquement les caractères ^
et v
(vous pouvez supposer qu'il n'y aura pas d'autres caractères). Lisez de gauche à droite cette chaîne représente la séquence de clics de souris effectués par un seul utilisateur lors de la consultation d'une question ou d'une réponse Stack Exchange pour la première fois.
Chaque ^
représente un clic de upvote bouton et tous v
représente un clic de downvote bouton. (Pour des exemples de travail, regardez légèrement à gauche.)
Supposons qu'aucune limitation de vote ne soit en vigueur, de sorte que tous les clics sont correctement enregistrés.
Imprimer ou retourner:
1
ou+1
si le poste finit par être voté.0
si le poste finit par ne pas être voté. (-0
et+0
ne sont pas valides)-1
si le poste finit par être voté.
Les messages commencent par zéro vote net de l'utilisateur et les boutons permettent de modifier les votes nets comme suit:
Net Votes Before Button Pressed Net Votes After
1 ^ 0
1 v -1
0 ^ 1
0 v -1
-1 ^ 1
-1 v 0
Le code le plus court en octets gagne.
Cas de test:
[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
^
personnage peut provoquer un changement de score de -1, +1 ou +2? Suis-je dense où? Que se passe-t-il?