Sfida
Dato due stringhe in qualsiasi formato I / O predefinito, procedere come segue:
NOTA: la sfida farà riferimento alla prima stringa come "dati" e alla seconda denominata "programma".
- Cambia il programma in una stringa infinita che è solo il programma ripetuto all'infinito (es.
10
->1010101010...
). La sfida si riferirà a questo come al "programma infinito" Mentre i dati non sono vuoti, esegui le seguenti operazioni mentre esegui il ciclo continuo sul programma infinito:
un. Se il comando corrente è "0", elimina il bit più a sinistra nei dati. Se i dati sono vuoti, "0" non fa nulla.
b. Se il comando corrente è "1", aggiungi il carattere successivo nel programma ai dati se il bit più a sinistra nei dati è uno.
c. Se i dati non sono vuoti ora, emettere i dati.
Casi test
I dati sono il lato sinistro dell'input e il programma è il lato destro.
100, 0 --> 00, 0
1111, 1 --> 11111, 111111, 1111111, ...
10, 011 --> 0, 0, 0
1110, 011 --> 110, 1101, 11010, 1010...
Appunti
- I dati e il programma saranno composti solo da 0 e 1 secondo
- Per dati / programmi che non si arrestano, non è necessario arrestare il programma.
- I dati e il programma non saranno vuoti nell'input.
- È possibile che siano presenti più righe finali e nuove righe principali
- Sono vietate le scappatoie standard
- È possibile utilizzare qualsiasi formato I / O conveniente
Come sempre con code-golf , vince il codice più corto !
100
passa a 10
cmd 0
, la cui definizione è "elimina il bit più a sinistra nei dati". non sarebbe l'estrema sinistra di 100
essere 1
?