Anda akan diberikan sebuah String yang terdiri dari ASCII yang dapat dicetak (tanpa baris baru). Tugas Anda adalah membangun Tangga yang bagus untuk Kastil saya.
Bagaimana cara membangun Stairway yang bagus?
Pertama, Anda harus mendapatkan semua rotasi dari String. Sebagai contoh, String
abcd
memiliki rotasi berikut:abcd, bcda, cdab, dabc
(setiap karakter dipindahkan ke akhir sampai kita mencapai karakter terakhir).Kami sekarang menempatkan setiap rotasi di atas satu sama lain:
abcd bcda cdab dabc
Kita tidak bisa benar-benar memanjat tembok lurus, jadi kita harus membangun tangga. Itu berarti Anda harus menambahkan sejumlah spasi sebelum setiap rotasi sesuai dengan indeksnya dalam daftar rotasi:
abcd bcda cdab dabc
Anda juga membutuhkan Tangga yang menghubungkan ke sisi lain kastil saya, jadi Anda harus membangun satu seperti di bawah ini, membalikkan setiap rotasi dan menambahkan beberapa spasi:
abcd dcba bcda adcb cdab badc dabccbad
Ini adalah kode-golf , maka kode terpendek dalam byte menang dan aturan standar untuk tag berlaku.
Uji Kasus
Input
abcd
:, Keluaran:abcd dcba bcda adcb cdab badc dabccbad
Input
aaaa
:, Keluaran:aaaa aaaa aaaa aaaa aaaa aaaa aaaaaaaa
Input
Code golf
:, Output (Perhatikan spasi):Code golf flog edoC ode golfC Cflog edo de golfCo oCflog ed e golfCod doCflog e golfCode edoCflog golfCode edoCflog olfCode g g edoCflo lfCode go og edoCfl fCode gollog edoCf
dab
c. -------Jawaban:
05AB1E , 12 byte
Kode:
Menggunakan penyandian 05AB1E . Cobalah online!
Penjelasan:
sumber
Jelly , 16 byte
Cobalah online!
Tentu saja, -1 menggunakan Jonathan Allan 's
ɓ
!sumber
J’ɓ⁹⁶ẋ;"ṙz⁶Zm€0Y
(atauLḶ
untukJ’
)Retina , 47 byte
Cobalah online! Penjelasan: Tahap pertama membuat tangga kiri dengan mempertimbangkan setiap karakter dan membuat spasi sama dengan posisi saat ini, kemudian sisa string, lalu mulai dari string, lalu spasi sama dengan sisa string. Sisa skrip dijalankan pada setiap baris yang baru saja dihasilkan secara bergantian. Pertama, baris digandakan, lalu karakter dalam duplikat dibalik, kemudian garis dan duplikatnya digabungkan.
sumber
Python 3 , 89 byte
Cobalah online!
-1 byte berkat ovs
-1 byte terima kasih kepada Lynn
sumber
l-i-1
hanya bisal+~i
sebagai~i == -i-1
' '*(l+~i)*2
sama dengan' '*(l+~i)
, yang satu byte lebih pendek!C (gcc) , 126 byte
Cobalah online!
sumber
Arang ,
23 2120 byteCobalah online!
Mungkin bisa bermain golf lebih banyak, tapi saya memposting dari aplikasi seluler. Tautan ke versi verbose .
sumber
G→↘←Lθθ‖C
.Haskell,
8079 byteCobalah online!
Bagaimana itu bekerja
Sunting: Terima kasih kepada @ Ørjan Johansen untuk satu byte.
sumber
u#_=u
menghemat satu byte.unlines
manau#_=u
tidak mengetik centang dan kemudian beralih untuk membangun string tunggal ... Terima kasih!J, 34 byte
ungolfed
Cobalah online!
sumber
Pyth , 19 byte
Cobalah online!
sumber
Mathematica, 119 byte
sumber
PHP, 95 byte
Jalankan sebagai pipa dengan
-nR
atau coba online .kerusakan
sumber
Japt , 22 byte
Memimpin baris baru adalah bagian dari program.
Cobalah online!
Jalankan semua test case menggunakan WIP CodePen saya.
Penjelasan
Tersirat:
U
= string input. Baris pertama kosong untuk tidak ditimpaU
.Baris kedua secara implisit menetapkan panjang (
l
) dariU
keV
.Baris ketiga:
sumber
Pyth, 20 byte
Cobalah online!
sumber
Javascript (ES6), 118 byte
Cuplikan kode contoh:
sumber
Python 2 ,
8583 bytel+~i
dan membantu saya melihat ruang yang tidak diinginkanCobalah online!
sumber
l-1-i
hanya bisal+~i
sebagai~i == -i-1
8 ,
173168 byteKode
Versi tidak dikoleksi dengan komentar
Penggunaan dan contoh
Atau lebih jelas
sumber