Tantangan
Dengan dua string dalam format I / O default apa pun, lakukan hal berikut:
CATATAN: Tantangan akan merujuk ke string pertama sebagai "data" dan yang kedua disebut sebagai "program".
- Ubah program menjadi string tanpa batas yang hanya merupakan program yang diulang tanpa batas (misalnya
10
->1010101010...
). Tantangan akan menyebut ini sebagai "program tak terbatas" Sementara data tidak kosong, lakukan hal berikut sambil mengulangi program tak terbatas:
Sebuah. Jika perintah saat ini adalah "0", hapus bit paling kiri dalam data. Jika data kosong, "0" tidak melakukan apa pun.
b. Jika perintah saat ini adalah "1", tambahkan karakter berikutnya dalam program ke data jika bit paling kiri dalam data adalah satu.
c. Jika data tidak kosong sekarang, output data.
Uji Kasus
Data adalah sisi kiri input dan program adalah sisi kanan.
100, 0 --> 00, 0
1111, 1 --> 11111, 111111, 1111111, ...
10, 011 --> 0, 0, 0
1110, 011 --> 110, 1101, 11010, 1010...
Catatan
- Data dan program hanya terdiri dari 0s dan 1s
- Untuk data / program yang tidak berhenti, program Anda tidak perlu berhenti.
- Data dan program tidak akan kosong dalam input.
- Anda mungkin memiliki beberapa trailing dan memimpin baris baru
- Celah Standar dilarang
- Anda dapat menggunakan format I / O yang nyaman
Seperti biasa dengan kode-golf , kode terpendek menang !
100
menuju ke 10
cmd 0
, yang definisi adalah "hapus bit paling kiri dalam data." tidak akan sedikit paling kiri dari 100
menjadi 1
?