Câu hỏi này được lấy cảm hứng từ câu hỏi của Kevin Cruijssen .
Bây giờ thảm được đặt ra, chúng tôi muốn cuộn nó. Nhiệm vụ của bạn là viết một chương trình lấy một chuỗi và trả về một vòng xoắn được tạo từ chuỗi này (đại diện cho một tấm thảm cuộn nhìn từ bên cạnh).
Thủ tục cho một bước cuộn thảm là như sau. Có một ví dụ để minh họa những gì tôi muốn nói. Lưu ý rằng ví dụ bắt đầu với một tấm thảm cuộn một phần để hiểu rõ hơn:
ac
rpet
- tách "đầu" ra khỏi "đuôi" của thảm: đầu là những gì đã được cuộn cho đến nay, đuôi là những gì còn lại để được cuộn.
Head: ac Tail:
rp et
- Xoay đầu 90 °, theo chiều kim đồng hồ.
Rotated head: ra Tail (unchanged):
pc et
- nếu chiều rộng của đầu mới (ở đây
2
) nhỏ hơn hoặc bằng chiều dài của đuôi (ở đây2
)- Sau đó, đặt nó lên trên đuôi
- mặt khác, tấm thảm (như lúc bắt đầu bước) đã được cuộn
New carpet: ra
pc
et
Lặp lại thủ tục nhiều lần nếu cần.
Hai ví dụ cho thấy tất cả các bước của thảm lăn:
carpet
c
arpet
ac
rpet
ra
pc
et
0123456789
0
123456789
10
23456789
21
30
456789
432
501
6789
Một số giới hạn:
- Bạn không cần phải hiển thị tất cả các bước trung gian, chỉ thảm cuộn (ví dụ: nếu bạn tìm thấy một cách không lặp để tính kết quả, nó hoàn hảo). Ngoài ra, bạn không cần in bất kỳ khoảng trắng hàng đầu nào, trong các ví dụ ở trên, tôi chỉ hiển thị chúng để căn chỉnh công cụ.
- Đầu vào là một Chuỗi, một danh sách / mảng char
- Đầu ra được in ra thiết bị xuất chuẩn hoặc vào một tệp.
- Đầu vào là tốt: độ dài ít nhất là 1 char và tối đa là một hằng số đủ nhỏ để nó không gây ra vấn đề, nhưng bạn không thể sử dụng hằng số đó trong chương trình của mình; nội dung của chuỗi chỉ là các ký tự đẹp ([a-zA-Z0-9]), mã hóa theo sở thích của bạn.
- Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte thắng. Đừng để ngôn ngữ mã-golf ngăn cản bạn đăng câu trả lời với các ngôn ngữ không mã hóa. Cố gắng đưa ra một câu trả lời càng ngắn càng tốt cho ngôn ngữ lập trình 'bất kỳ'.
- Lỗ hổng mặc định bị cấm.
- Nếu có thể, vui lòng thêm một liên kết với một bài kiểm tra cho mã của bạn.
- Ngoài ra, thêm một lời giải thích cho câu trả lời của bạn nếu bạn nghĩ rằng nó là cần thiết.
ProgrammingPuzzlesAndCodeGolf
- chiều dài đuôi cuối cùng lớn hơn 1 lần tăng gấp ba lần tôi.
print
bên trong a lambda
.