Desafio
Dadas duas seqüências de caracteres em qualquer formato de E / S padrão, faça o seguinte:
NOTA: O desafio se referirá à primeira cadeia como "dados" e à segunda como "programa".
- Mude o programa para uma sequência infinita, que é apenas o programa repetido infinitamente (por exemplo
10- ->1010101010...). O desafio se referirá a isso como o "programa infinito" Enquanto os dados não estiverem vazios, faça o seguinte enquanto faz um loop no programa infinito:
uma. Se o comando atual for "0", exclua o bit mais à esquerda nos dados. Se os dados estiverem vazios, "0" não fará nada.
b. Se o comando atual for "1", acrescente o próximo caractere no programa aos dados se o bit mais à esquerda nos dados for um.
c. Se os dados não estiverem vazios agora, produza os dados.
Casos de teste
Os dados são o lado esquerdo da entrada e o programa é o lado direito.
100, 0 --> 00, 0
1111, 1 --> 11111, 111111, 1111111, ...
10, 011 --> 0, 0, 0
1110, 011 --> 110, 1101, 11010, 1010...
Notas
- Os dados e o programa consistirão em apenas 0s e 1s
- Para dados / programas que não param, seu programa não precisa parar.
- Os dados e o programa não estarão vazios na entrada.
- Você pode ter várias linhas novas à direita e à frente
- As brechas padrão são proibidas
- Você pode usar qualquer formato de E / S conveniente
Como sempre com o code-golf , o código mais curto vence !
100prossegue 10no cmd 0, cuja definição é "excluir o bit mais à esquerda dos dados". o bit mais à esquerda não iria 100ser 1?