Thử thách
Viết một hàm hoặc chương trình chấp nhận một dòng đầu vào, thực hiện một shuffle rất cụ thể và kỳ lạ quen thuộc trên các ký tự của nó và đưa ra kết quả.
Việc xáo trộn cần thiết có thể được mô tả bằng thuật toán sau:
- Dán nhãn cho mỗi ký tự trong đầu vào với chỉ số dựa trên 1.
- Viết ký tự số 1 làm đầu ra.
- Bắt đầu với ký tự số 2, viết mọi ký tự khác vào đầu ra theo thứ tự, ngoại trừ ký tự 2. Nói cách khác, viết các ký tự 4, 6, 8, 10, v.v. làm đầu ra.
- Bắt đầu với số ký tự tiếp theo n chưa được viết là đầu ra, hãy viết mọi ký tự thứ n vào đầu ra, ngoại trừ chính ký tự n và loại trừ bất kỳ ký tự nào khác (bằng nhãn số) mà bạn có thể đã ghi vào đầu ra.
- Lặp lại bước 4 miễn là nó tiếp tục thêm ký tự mới vào đầu ra.
- Viết các ký tự còn lại vào đầu ra, theo thứ tự.
Thí dụ
- Dán nhãn cho các nhân vật.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 OLDOCYAK 'SBEAUTYCORNER
2. Viết ký tự đầu tiên xuất ra:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27OLDDOCYAK 'SBEAUTYCORNER O
3. Viết mọi ký tự khác bắt đầu bằng 2, ngoại trừ 2.
12 3456789101112131415161718192021222324252627OLDDOCYAK'SBEAUTYCORNER O EUYCRE OA'
4. Ký tự tiếp theo chưa được viết là ký tự số 3; viết mỗi ký tự thứ 3 bắt đầu bằng 3, nhưng không bao gồm ký tự 3 và bất kỳ ký tự nào đã được viết.
12 3456789101112131415161718192021222324252627OLDDOCYAK'SBEAUTYCORNEROOA 'EUYCRE YB R
5. Lặp lại bước 4 bằng ký tự tiếp theo, ký tự 5.
4. Ký tự tiếp theo chưa được viết là ký tự số 5; viết mỗi ký tự thứ 5 bắt đầu bằng 5, nhưng không bao gồm ký tự 5 và bất kỳ ký tự nào đã được viết. (Số tiền này chỉ bằng ký tự 25).
12 3456789101112131415161718192021222324252627OLDDOCYAK'SBEAUTYCORNEROOA 'EUYCREYB R N
5. Nhân vật tiếp theo là 7; nhưng 14, 21 đã được viết, vì vậy sẽ không còn ký tự nào được xuất nếu chúng ta lặp lại bước 4. Như vậy, chúng ta đã hoàn thành 5.
6. Viết các ký tự còn lại ra theo thứ tự.
12 3456789101112131415161718192021222324252627OLD DOCYAK'SBEAUTYCORNEROOA 'EUYCREYB RN LDDCKSATO
Quy tắc
Đầu vào và đầu ra có thể thông qua đầu vào tiêu chuẩn / đầu ra tiêu chuẩn, chuỗi hoặc mảng ký tự.
Nếu đọc dưới dạng đầu vào tiêu chuẩn, bạn có thể thuận tiện cho rằng có một dòng mới, hoặc toàn bộ đầu vào có chứa dòng. Nhân vật dòng mới không tham gia vào shuffle.
Tương tự như vậy, để thuận tiện, đầu ra của bạn có thể có một dòng mới hoặc không.
Sơ hở tiêu chuẩn là không được phép.
Đây là một cuộc thi golf mã. Mã nhỏ nhất trong byte thắng.
Các trường hợp thử nghiệm
123456789ABCDEF -> 1468ACE9F2357BD
OLD DOC YAK'S BEAUTY CORNER -> O O A' EUYCREYB RNLDDCKSATO
Blue boxes use a 2600hz tone to convince telephone switches that use in-band signalling that the caller is actually a telephone operator.
->
Bebxsuea20h oet ovnetlpoesice htuei-adsgaln httecle satal eehn prtre 0ncce ha nng aiuapootnt ihyon atallu o s 6z oi ehwstsnbilt lr clee.