introduction
Le code Parsons n'est qu'un moyen simple de décrire les variations de hauteur d'un morceau de musique, qu'une note soit plus élevée ou plus basse que la précédente.
Même si vous craignez de vous souvenir de morceaux, vous pouvez toujours vous rappeler à peu près si une note monte ou descend, ainsi le code Parsons peut vous aider à identifier une musique à l'aide d'un moteur de recherche.
La description
Chaque variation est représentée par un seul caractère, qui est l'un des suivants:
R
si la note est la même que la précédente (signifie " R epeat" )U
si la note est plus élevée que la précédente (signifie " U p" )D
si la note est plus basse que la précédente (signifie " D own" )
La note initiale est écrite comme *
.
Exemple
Voici un exemple de code Parsons (début de "Ode to Joy" ):
*RUURDDDDRUURDR
Vous pouvez réellement le visualiser , comme ceci:
*-*
/ \
* *
/ \
*-* * *-*
\ / \
* * *-*
\ /
*-*
Nous appellerons cela un contour à partir de maintenant.
Les règles de dessin de tels contours sont considérées comme explicites par l'exemple ci-dessus.
Défi
Maintenant vient le vrai défi.
Écrivez un programme qui, étant donné un contour en entrée, sort son code Parsons correspondant.
On ne vous demande pas de dessiner le contour, mais l'inverse en fait.
À partir du contour, trouvez le code Parsons d'origine.
Règles
- Les règles habituelles pour le golf à code s'appliquent
- Le programme le plus court en nombre d'octets gagne
- L'entrée est un contour et la sortie doit être un code Parsons valide
- Les détails sur les espaces supplémentaires pour l'entrée ne sont pas pertinents, faites ce qui vous convient le mieux
- Vous n'êtes pas autorisé à coder en dur, d'une manière ou d'une autre, des parties de la sortie et / ou du programme en utilisant des espaces supplémentaires en raison de la règle précédente
Remarques
- Cela pourrait être utile pour tester
- Le code Parsons correspondant pour
*
est*
- Une chaîne vide n'est pas un contour valide
- Un code Parsons commence toujours par
*
*
qui ne fait rien?
*
? Nan. Il devrait imprimer, *
je suppose. J'ajouterai cette valise d'angle.
*
. Toujours.