Introducción
El código Parsons es solo una manera simple de describir las variaciones de tono en una pieza musical, ya sea que una nota sea más alta o más baja que la anterior.
Incluso si apestas al recordar melodías, aún puedes recordar si una nota sube o baja, por lo que el código Parsons puede ayudarte a identificar una música usando un motor de búsqueda.
Descripción
Cada variación está representada por un solo carácter, que es uno de los siguientes:
R
si la nota es la misma que la anterior (significa " R epeat" )U
si la nota es más alta que la anterior (significa " U p" )D
si la nota es más baja que la anterior (significa " D propio" )
La nota inicial se escribe como *
.
Ejemplo
Aquí hay un ejemplo de código Parsons (comienzo de "Oda a la Alegría" ):
*RUURDDDDRUURDR
Realmente puedes visualizarlo , así:
*-*
/ \
* *
/ \
*-* * *-*
\ / \
* * *-*
\ /
*-*
A partir de ahora lo llamaremos contorno .
Las reglas para dibujar dichos contornos se consideran explicadas por el ejemplo anterior.
Reto
Ahora viene el verdadero desafío.
Escriba un programa que, dado un contorno como entrada, emite su código Parsons correspondiente.
No se le pide que dibuje el contorno, sino todo lo contrario.
Desde el contorno, encuentre el código original de Parsons.
Reglas
- Se aplican las reglas habituales para el golf de código.
- El programa más corto en número de bytes gana
- La entrada es un contorno y la salida debe ser un código Parsons válido.
- Los detalles sobre espacios en blanco adicionales para la entrada son irrelevantes, haga lo que sea mejor para usted
- No está permitido codificar, de una forma u otra, partes de la salida y / o el programa utilizando espacios en blanco adicionales debido a la regla anterior
Notas
- Esto puede ser útil para probar
- El código de Parsons correspondiente para
*
es*
- Una cadena vacía no es un contorno válido
- Un código de Parsons siempre comienza con
*
*
quien no hace nada?
*
? No Debería imprimir *
, supongo. Agregaré este caso de la esquina.
*
. Siempre.