Desafío
Dadas dos cadenas en cualquier formato de E / S predeterminado, haga lo siguiente:
NOTA: El desafío se referirá a la primera cadena como "datos" y a la segunda como "programa".
- Cambie el programa a una cadena infinita que es solo el programa repetido infinitamente (por ejemplo,
10
->1010101010...
). El desafío se referirá a esto como el "programa infinito" Mientras los datos no estén vacíos, haga lo siguiente mientras recorre el programa infinito:
a. Si el comando actual es "0", elimine el bit más a la izquierda en los datos. Si los datos están vacíos, "0" no hace nada.
si. Si el comando actual es "1", agregue el siguiente carácter en el programa a los datos si el bit más a la izquierda en los datos es uno.
C. Si los datos no están vacíos ahora, envíe los datos.
Casos de prueba
Los datos son el lado izquierdo de la entrada y el programa es el lado derecho.
100, 0 --> 00, 0
1111, 1 --> 11111, 111111, 1111111, ...
10, 011 --> 0, 0, 0
1110, 011 --> 110, 1101, 11010, 1010...
Notas
- Los datos y el programa constarán de solo 0s y 1s.
- Para los datos / programas que no se detienen, su programa no necesita detenerse.
- Los datos y el programa no estarán vacíos en la entrada.
- Puede tener múltiples líneas nuevas y finales
- Las lagunas estándar están prohibidas
- Puede usar cualquier formato conveniente de E / S
Como siempre con code-golf , ¡el código más corto gana !
100
va a 10
cmd 0
, cuya definición es "eliminar el bit más a la izquierda en los datos". no sería el más a la izquierda de 100
ser 1
?