Thử thách
Cho hai chuỗi ở bất kỳ định dạng I / O mặc định nào, hãy làm như sau:
LƯU Ý: Thử thách sẽ đề cập đến chuỗi đầu tiên là "dữ liệu" và chuỗi thứ hai được gọi là "chương trình".
- Thay đổi chương trình thành một chuỗi vô hạn, đó chỉ là chương trình được lặp lại vô hạn (ví dụ
10
->1010101010...
). Thách thức sẽ gọi đây là "chương trình vô hạn" Trong khi dữ liệu không trống, hãy thực hiện các thao tác sau trong khi lặp qua chương trình vô hạn:
a. Nếu lệnh hiện tại là "0", hãy xóa bit ngoài cùng bên trái trong dữ liệu. Nếu dữ liệu trống, "0" không làm gì cả.
b. Nếu lệnh hiện tại là "1", hãy thêm ký tự tiếp theo trong chương trình vào dữ liệu nếu bit ngoài cùng bên trái trong dữ liệu là một.
c. Nếu bây giờ dữ liệu không trống, hãy xuất dữ liệu.
Các trường hợp thử nghiệm
Dữ liệu là phía bên trái của đầu vào và chương trình là phía bên phải.
100, 0 --> 00, 0
1111, 1 --> 11111, 111111, 1111111, ...
10, 011 --> 0, 0, 0
1110, 011 --> 110, 1101, 11010, 1010...
Ghi chú
- Dữ liệu và chương trình sẽ chỉ bao gồm 0 và 1
- Đối với dữ liệu / chương trình không dừng lại, chương trình của bạn không cần dừng lại.
- Dữ liệu và chương trình sẽ không trống trong đầu vào.
- Bạn có thể có nhiều dòng mới và hàng đầu
- Lỗ hổng tiêu chuẩn bị cấm
- Bạn có thể sử dụng bất kỳ định dạng I / O thuận tiện
Như mọi khi với code-golf , mã ngắn nhất sẽ thắng !
100
đi đến 10
cmd 0
, với định nghĩa là "xóa bit trái nhất trong dữ liệu." sẽ không bit tận cùng bên trái của 100
được 1
?