Đưa ra một chuỗi, nhiệm vụ của bạn là thu gọn nó thành một cấu trúc giống như ngoằn ngoèo như được mô tả dưới đây.
Gấp lại thành hình Zigzag
Chúng tôi sẽ lấy chuỗi "Mississippi"
làm ví dụ:
Đầu tiên, xuất tiền tố dài nhất chỉ bao gồm các ký tự duy nhất:
Mis
Khi bạn đạt đến ký tự trùng lặp C đầu tiên , hãy bỏ qua nó và xuất tiền tố dài nhất bao gồm các ký tự duy nhất của chuỗi còn lại (
issippi
) theo chiều dọc, bên dưới lần xuất hiện đầu tiên của C :Mis i s
Lặp lại quá trình, xen kẽ giữa tiếp tục ngang và dọc. Nhưng bây giờ hãy cẩn thận (ở bước 1) để tiếp tục xuất ra theo chiều ngang từ lần xuất hiện mới nhất của ký tự trùng lặp, không nhất thiết là lần cuối cùng, như trong trường hợp này:
Mis i sip ----- Mis i sip i
Quy tắc
- Chuỗi sẽ chỉ chứa các ký tự ASCII có thể in, nhưng sẽ không chứa bất kỳ loại khoảng trắng nào.
- Bạn có thể cạnh tranh trong bất kỳ ngôn ngữ lập trình nào và có thể nhận đầu vào và cung cấp đầu ra thông qua bất kỳ phương thức tiêu chuẩn nào và ở bất kỳ định dạng hợp lý 1 nào , trong khi lưu ý rằng các lỗ hổng này bị cấm theo mặc định. Đây là môn đánh gôn , vì vậy bài nộp ngắn nhất (tính bằng byte) cho mọi ngôn ngữ sẽ thắng.
- 1 Đầu vào: Chuỗi / Danh sách các ký tự / bất cứ thứ gì khác mà ngôn ngữ của bạn sử dụng để thể hiện các chuỗi. Đầu ra: Chuỗi nhiều dòng, danh sách các chuỗi biểu thị các dòng hoặc danh sách các danh sách các ký tự / chuỗi có độ dài-1, nhưng vui lòng bao gồm một phiên bản in mã đẹp của câu trả lời của bạn, nếu có thể.
- Về không gian bổ sung, đầu ra có thể chứa:
- Dòng mới hàng đầu / dấu
- Trailing space trên mỗi dòng / ở cuối
- Một số lượng nhất quán các không gian hàng đầu trên mỗi dòng
- Bạn phải bắt đầu xuất theo chiều ngang, bạn không thể bắt đầu theo chiều dọc.
Các trường hợp thử nghiệm
Đầu vào:
"Hoàn hảo" "Mississippi" "Điều lạ" "Sự tầm thường" "Cthulhu" "PPCG" "pOpOpOpOpOpOp" "ABCCCE" "ABCCCECCEEEEC" "abcdcebffg" "abca" "AAAAAAAA"
Đầu ra tương ứng:
Hoàn hảo c t
Mis Tôi một hớp Tôi
Od ies t
Triv một tôi ies t
Cthul bạn
P C G
pO Opo pp p
ABC C E
ABC CCE E EC
A B C D e b fg
abc
Một Ôi Một
ABCcde
"A" ≠ "a"
. Đầu ra cho ABCcde
sẽ chỉ làABCcde
AAAAAAAA
b
, vì bạn chỉ nên xem xét các bản sao trong chuỗi còn lại , nghĩa là, sau khi "phân nhánh". Khi bạn đạt đến lần thứ haic
, bạn xuất ra tiền tố dài nhất của các ký tự duy nhất của chuỗi còn lại ,ebffg
do đó (xuất raebf
theo chiều dọc và tiếp tục theo chiều ngang sau đó), vì vậy bạn không phải lo lắng về các ký tự từ một phần của chuỗi. đã được xuất ra trước khi chuyển hướng. Nếu bạn vẫn cảm thấy không rõ ràng với bạn, tôi sẽ làm một ví dụ từng bước khác với trường hợp thử nghiệm này.