Tulis program atau fungsi yang menggunakan string baris-tunggal karakter ascii yang dapat dicetak tanpa spasi:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Anda dapat menganggap input tersebut valid.
Berdasarkan input, gambarkan string baru yang tersusun pada kisi-kisi tekstual spasi dan baris baru mengikuti grafik kura - kura - aturan yang menarik di mana kura-kura selalu menempati satu ruang kisi dan hanya bisa menghadapi arah mata angin.
Cetak karakter pertama dalam string input ke kisi teks. Penyu mulai di sini menghadap ke kanan. Ulangi sisa karakter dalam string input (hanya berhenti jika kura-kura macet), ulangi proses ini:
Jika 4 ruang kisi yang bersebelahan langsung dengan kura-kura semuanya terisi (yaitu tidak ada satupun yang merupakan ruang), berhentilah iterasi. Kura-kura tersangkut dan kisi-kisi selengkap mungkin.
Lihatlah karakter saat ini di input dibandingkan dengan karakter sebelumnya:
Jika karakter saat ini leksikal sebelum yang sebelumnya, putar kura-kura seperempat belok ke kiri.
Jika karakter saat ini adalah leksikal setelah sebelumnya, putar penyu seperempat belok ke kanan.
Jika karakter saat ini sama dengan karakter sebelumnya, jangan putar kura-kura.
Jika ruang kisi yang kura-kura hadapi sekarang tidak kosong (artinya bukan spasi), putar kura-kura berulang kali seperempat belok kiri sampai dia menghadapi ruang kotak kosong.
Pindahkan kura-kura satu langkah maju ke arah yang dia hadapi dan cetak karakter saat ini pada kotak di lokasi baru kura-kura
Cetak atau kembalikan string kotak teks yang dihasilkan tanpa baris atau kolom asing. Baris mungkin memiliki spasi tambahan hingga kolom paling kanan dengan non-spasi, tetapi tidak di luar. Sebuah baris baru yang membuntuti secara opsional diizinkan.
Kode terpendek dalam byte menang.
Contoh
Inilah semua langkah dari input spattuuxze
. The ^V<>
karakter menunjukkan arah penyu menghadap, mereka tidak bagian dari input atau output.
s>
^
p
s
<ap
s
^
t
ap
s
^
t
t
ap
s
tu>
t
ap
s
tuu>
t
ap
s
tuu
t x
apV
s
tuu
<zx
ap
s
Pada titik ini kura-kura macet sehingga e
tidak pernah dicetak dan hasil akhirnya adalah:
tuu
tzx
ap
s
Berikut ini adalah output yang serupa tetapi tidak valid karena memiliki kolom spasi kosong terkemuka:
tuu
tzx
ap
s
Uji Kasus
spattuuxze
tuu
tzx
ap
s
spattuuxxze
tuu
t x
apx
sze
1111111
1111111
ABCDEFGHIJKLMNOP
PEFG
ODAH
NCBI
MLKJ
`_^]\[ZYXWVUTSR
^_RS
\]`UT
[ZWV
YX
Woo!
W
o
o!
woo!
!o
o
w
Wheeee
W
heeee
banana
a
an
an
b
Turtle
T
ure
tl
turTle
e
tTl
ur
(Katakan segera jika ada yang salah.)
PONMLKJIHGFEDCBA
, karena hasilnya bukan hanya kotak dan kontras denganABCDEFGHIJKLMNOP
menyoroti asimetri dalam aturan.Jawaban:
Groovy (357 Bytes)
Tidak ada penyu eksternal yang digunakan dan tidak ada penyu yang terluka.
Cobalah di sini: https://groovyconsole.appspot.com/edit/5115774872059904
Usaha Sebelumnya
Groovy (397 Bytes)
https://groovyconsole.appspot.com/script/5179465747398656
sumber
Java,
408406 byteFungsi mendapatkan input sebagai String dan mengembalikan hasilnya sebagai String.
Secara internal ia menggunakan array char 2D untuk menyimpan surat-surat dan membuat kolom dan baris min dan max digunakan untuk mengembalikan sub-array yang digunakan.
Jadi, dalam String hasil tidak ada kolom spasi putih, tetapi ada spasi putih hingga kolom paling kanan dengan karakter non-spasi. Baris baru ditambahkan di akhir.
Ada saran untuk bermain golf lebih lanjut :-)
sumber
%
adalah sisanya di java dan bisa negatif yang tidak diinginkan. Terima kasih atas sarannya :-)Python3,
419414 bytesumber