Diberikan string yang panjangnya dapat dibagi 4, buat segitiga seperti yang ditunjukkan di bawah ini.
Jika stringnya abcdefghijkl
, maka segitiga itu adalah:
a
b l
c k
defghij
Jika stringnya iamastringwithalengthdivisiblebyfour
, maka segitiga itu adalah:
i
a r
m u
a o
s f
t y
r b
i e
n l
gwithalengthdivisib
Jika stringnya thisrepresentationisnotatriangle
, maka segitiga itu adalah:
t
h e
i l
s g
r n
e a
p i
r r
esentationisnotat
Catatan
- String hanya akan terdiri dari karakter dari
a
hinggaz
. - Leading / Trailing whitespaces dan baris baru diizinkan selama bentuknya tidak rusak.
- Daftar string saat output diizinkan.
Ini adalah kode-golf . Jawaban terpendek dalam byte menang. Celah standar berlaku.
✂
lakukan?GH↙→→↖⊕÷Lθ⁴θ
akan berfungsi saat berikutnya saya mendorong Charcoal05AB1E , 23 byte
Cobalah online!
Penjelasan
sumber
JavaScript (ES6),
119117108105 byteDiformat dan dikomentari
Uji kasus
Tampilkan cuplikan kode
sumber
C #, 260 byte
Benar-benar ingin menggunakannya
SetCursorPosition
.Tidak Disatukan:
sumber
Mathematica, 164 byte
memasukkan
sumber
[[1]]
bisa diganti dengan#&@@
.@(...)
, lakukan[...]
saja. Dan saya belum menguji tetapi Anda mungkin dapat menyimpan byte lain dengan memberikanColumn
nama (atau bahkan mungkinColumn[#,Alignment->Center]&
untuk menghindariq
) dan kemudian dengan meletakkan semua variabel yang tersisa ke argumen pertama dari luarColumn
(untuk menyimpan tanda kurung sekitarnya).Python 3 , 120 byte
Golf pertama, saya pikir saya mungkin juga belajar beberapa Python di sepanjang jalan.
Cobalah online!
Penjelasan:
Karakter pertama dicetak dengan sendirinya setelah
len(a)//4
spasi, maka karakter pertama dan terakhiri
mulai dari yang kedua dicetak, dipisahkan oleh2*i - 1
spasi.Akhirnya, substring yang tersisa dicetak.
sumber
p=print
, dan kemudian gunakan sajap
untuk ketiganyaprint
yang Anda gunakan.//
(pembagian lantai) dapat diganti dengan/
.GNU sed ,
178158132 + 1 = 133 byte+1 byte untuk
-r
bendera.Cobalah online!
Penjelasan
Dalam revisi sebelumnya saya menggunakan banyak byte yang berurusan dengan matematika, kasus khusus, dan pembersihan, meskipun secara intuitif saya yakin mereka bisa dihindari. Sejak itu saya berhasil melakukannya, kebanyakan.
Misalkan kita punya input
abcdEFGHIJKLMnop
. Surat-suratEFGHIJKLM
akan menjadi bagian bawah segitiga, jadi saya telah memanfaatkannya sebagai alat bantu visual.Pertama kita menyiapkan input dengan meletakkan karakter pertama pada barisnya sendiri (didahului oleh spasi) dan memasukkan kursor (
;
) sebelum karakter terakhir:Sekarang kita punya:
Sekarang, dalam satu lingkaran, kita akan melakukan beberapa hal ke baris terakhir: 1. Salin spasi dari baris sebelumnya dan masukkan setelah karakter pertama, ditambah dua; 2. Pindahkan karakter terakhir ke kanan setelah spasi, diikuti oleh baris baru; dan 3. Pindahkan kursor tiga karakter ke kiri.
Inilah hasil dari setiap iterasi:
Anda dapat melihat piramida mulai terbentuk. Anda juga dapat melihat untuk apa kursor itu: Di setiap iterasi, kursor itu bergerak ke kiri tiga karakter, dan ketika tidak ada lagi tiga karakter di sebelah kirinya, itu mematahkan loop, yang kebetulan hanya ketika kita telah mencapai "bawah" dari piramida.
Sekarang kita akan melakukan operasi serupa tetapi secara terbalik. Dalam satu lingkaran, kami akan menyalin spasi dari awal baris dengan kursor ke awal baris sebelumnya, ditambah satu, dalam proses memindahkan kursor ke baris itu.
Berikut adalah beberapa iterasi dan hasil akhirnya:
Kita semua sudah selesai sekarang, kecuali untuk beberapa karakter tambahan: A
;
dan ruang ekstra pada baris pertama, dan dua ruang di "tengah" piramida pada tiga baris berikutnya. Substitusi sederhana menghilangkan mereka:Semua selesai!
sumber
Ruby , 106 byte
Cobalah online!
sumber
Python 2 ,
100 9796 byteCobalah online!
Penjelasan:
Satu hal cerdas yang saya lakukan di sini adalah memasukkan input dengan spasi di bagian akhir, sehingga karakter pertama berpasangan dengannya dan ini dapat didorong ke dalam loop (dan karena spasi spasi tambahan diperbolehkan)
Jumlah loop untuk diikuti terkait dengan
len(word)//4
. Pada langkah terakhir, seluruh string yang tersisa dicetak (ini membentuk dasar segitiga). Ruang mengikuti pola sederhana; set ruang pertama pergi berkurang 1, sedangkan set kedua ruang meningkat 2.sumber
a
akan selalu merupakan kelipatan dari 4.//
->/
C 225 byte
dijelaskan
sumber
C #, 172 byte
Cobalah online!
sumber
Oktaf, 87 byte
* Dalam mesin windows kode di atas menghasilkan hasil yang benar namun di tio saya menambahkan beberapa kode untuk memperbaikinya.
Penjelasan:
Cobalah online!
sumber
Haskell , 136 byte
Cobalah online!
sumber
PHP> = 7.1, 122 Bytes
PHP Sandbox Online
PHP> = 7.1, 124 Bytes
PHP Sandbox Online
sumber
AWK , 129 byte
Cobalah online!
Saya harus berpikir ini bisa bermain golf sedikit lebih, hanya saja tidak melihatnya.
sumber
Retina , 99 byte
Cobalah online! Penjelasan: Dua tahap pertama menghasilkan dua baris pertama, tetapi setelah itu tidak ada casing khusus diperlukan dan setiap baris berikutnya dapat dihasilkan secara otomatis:
sumber
Java 8, 213 byte
Penjelasan:
Coba di sini.
sumber
Perl 5 , 76 byte
74 byte kode +2 untuk
-F
Cobalah online!
sumber