J'ai une boîte à musique à manivelle pouvant jouer une série de quatre notes. Lorsque je tourne la manivelle, une des quatre cordes est pincée, en fonction de la position de la manivelle et de la direction du virage. Lorsque la manivelle est tournée plein nord, la boîte (avec ses chaînes numérotées de 1 à 4) ressemble à ceci:
1 | 2
|
O
4 3
À partir de là, je peux tourner la manivelle dans le sens des aiguilles d'une montre pour pincer la ficelle n ° 2 et pointer la manivelle vers l'est:
1 2
O---
4 3
Alternativement, j'aurais aussi pu tourner la manivelle dans le sens antihoraire depuis le nord pour jouer la corde n ° 1 et se terminer par une manivelle pointant vers l'ouest:
1 2
---O
4 3
La boîte peut alors jouer à tout moment l'une des deux notes suivantes: la note suivante disponible dans le sens des aiguilles d'une montre ou la note suivante dans le sens inverse des aiguilles d'une montre.
Défi
Votre défi consiste à écrire un programme ou une fonction qui accepte une chaîne de valeurs de note non vides (c.-à-d. Des chiffres à 1
travers 4
) et à déterminer s'il est toujours possible de jouer cette séquence de notes sur la boîte à musique. Produisez un résultat de vérité ou de falsification pour indiquer la possibilité de jouer ou non de l'entrée.
Quelques notes:
L'entrée ne fait aucune hypothèse sur la position de départ initiale. Les entrées
214
(en partant de l’est et en se déplaçant dans le sens contraire des aiguilles d’une montre) et234
(en partant du nord et en se déplaçant dans le sens des aiguilles d’une montre) et valables.La manivelle peut se déplacer librement dans les deux sens après chaque note. Une série de la même note est possible (par exemple
33333
) en se déplaçant d'avant en arrière sur une chaîne. La série1221441
est parfaitement jouable (en partant de l’ouest, en effectuant deux pas dans le sens horaire, puis trois pas dans le sens inverse des aiguilles d’une montre, puis deux pas dans le sens horaire).
Des échantillons
Quelques true
cas:
1
1234
1221
3333
143332
22234
2234
22214
1221441
41233
Quelques false
cas:
13 (note 3 is never available after note 1)
1224 (after `122`, the crank must be north, so 4 is not playable)
121 (after `12` the crank is east; 1 is not playable)
12221 (as above, after `1222` the crank is east)
43221