Este desafío es el primero de una serie de dos desafíos sobre la repetición. El segundo estará listo pronto.
En un lenguaje llamado Repetición (algo que acabo de inventar), consta de una cadena infinita de 12345678901234567890..., con la 1234567890repetición para siempre.
La siguiente sintaxis está disponible para los números de salida:
+-*/: Esto inserta el operador en la cadena de dígitos repetidos.- Ejemplos:
+->1+2=3(+inserta un+entre1y2)+*->1+2*3=1+6=7(Igual que el anterior, excepto que ahora se utilizan dos operadores)/->1/2=0(La repetición usa división entera)//->1/2/3=0/3=0(La repetición usa "asociación izquierda" con múltiples restas y divisiones)
- Cada operador se inserta de modo que tenga un dígito a su izquierda, a menos que haya
cun (vea a continuación).
- Ejemplos:
c: Se concatena con el siguiente dígito en la cadena.- Ejemplos:
c+->12+3=15(Elc"continúa" el1y lo concatena con el siguiente dígito,,2para formar12)+c->1+23=24ccc->1234
- Ejemplos:
(): Corchetes para procesar números.- Ejemplos:
(c+)*->(12+3)*4=15*4=60(La repetición usa el orden de las operaciones)(c+)/c->(12+3)/45=15/45=0(cc+c)/->(123+45)/6=168/6=28
- Ejemplos:
s: Omite un número (elimina el número de la cadena infinita).s+->2+3=5(ssalta1)csc->124(Los primeroscconcatos1y2, losssaltos3y loscconcatos finales12a4)+s+->7(La primera+suma1y2para hacer3,ssaltos3, y la final+se suma3a4hacer7)cs*(++)->12*(4+5+6)=12*15=180
En los ejemplos anteriores, solo se usa una cantidad finita de dígitos en la cadena infinita. El número de dígitos utilizados es equivalente a number of operators, concats and skips + 1.
Su tarea es, cuando se le da una cadena de código de repetición, generar el resultado.
Ejemplos de entrada y salida son:
++ -> 6
- -> -1
(-)* -> -3
cscc -> 1245
(cc+c)/ -> 28
cc+c/ -> 130
cs*(++) -> 180
Este es el código de golf, por lo que gana el código más corto en bytes.
Especificaciones:
- Le garantizamos que el resultado nunca superará
2^31-1. - También tiene la garantía de que la entrada solo consistirá en los símbolos
+-*/cs(). - Se generará un programa vacío
1.
s+es 2+3su primer ejemplo. Y todavía sme sigue molestando. Me pregunto cómo se +s()+expande. Si es 1+(2)+4así, (viene antes, 2pero seso viene incluso antes de que (aparentemente salte 3, no 2. Sin embargo, si el resultado es 1+(3)+4el efecto de a sdepende de lo que viene después (compárelo con +s+)
sces 23y s+es 1+3? ¿Se ssalta el 1ahora o el 2? Todos los ejemplos usan la primera operación en operandos 1y 2... así scdebería ser 13.
~s? No nos dejes colgando.