Hari ini kita akan membangun piramida dari huruf! Berikut contoh piramida huruf untuk 5 huruf pertama:
Tulis 5 huruf pertama dengan spasi di antara, pertama naik dan kemudian turun.
A B C D E D C B A
Lakukan hal yang sama untuk empat huruf pertama pada baris di atas, tetapi dengan dua spasi tambahan:
A B C D C B A A B C D E D C B A
Ulangi langkah yang sama sampai baris terakhir hanya 'A'
A A B A A B C B A A B C D C B A A B C D E D C B A
Ulangi langkah dua dan tiga turun alih-alih naik:
A A B A A B C B A A B C D C B A A B C D E D C B A A B C D C B A A B C B A A B A A
Pola yang sama ini dapat diperpanjang hingga 26 karakter. Tantangan Anda adalah menulis program atau fungsi yang mengambil bilangan bulat sebagai input, dan menghasilkan piramida huruf yang sesuai. Anda dapat memilih untuk menggunakan karakter huruf besar atau kecil. Anda mungkin selalu menganggap bahwa input akan berupa bilangan bulat [1, 26]
, dan output mungkin berupa format apa pun untuk string 2d. Misalnya, string dengan baris baru di dalamnya, array karakter, mencetak ke file, dll. Setiap baris mungkin memiliki spasi tambahan, dan Anda dapat secara opsional menampilkan satu baris tambahan.
Berikut beberapa contoh input / output:
1:
A
2:
A
A B A
A
3:
A
A B A
A B C B A
A B A
A
5:
A
A B A
A B C B A
A B C D C B A
A B C D E D C B A
A B C D C B A
A B C B A
A B A
A
13:
A
A B A
A B C B A
A B C D C B A
A B C D E D C B A
A B C D E F E D C B A
A B C D E F G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G H I H G F E D C B A
A B C D E F G H I J I H G F E D C B A
A B C D E F G H I J K J I H G F E D C B A
A B C D E F G H I J K L K J I H G F E D C B A
A B C D E F G H I J K L M L K J I H G F E D C B A
A B C D E F G H I J K L K J I H G F E D C B A
A B C D E F G H I J K J I H G F E D C B A
A B C D E F G H I J I H G F E D C B A
A B C D E F G H I H G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G F E D C B A
A B C D E F E D C B A
A B C D E D C B A
A B C D C B A
A B C B A
A B A
A
26:
A
A B A
A B C B A
A B C D C B A
A B C D E D C B A
A B C D E F E D C B A
A B C D E F G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G H I H G F E D C B A
A B C D E F G H I J I H G F E D C B A
A B C D E F G H I J K J I H G F E D C B A
A B C D E F G H I J K L K J I H G F E D C B A
A B C D E F G H I J K L M L K J I H G F E D C B A
A B C D E F G H I J K L M N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W X W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W X Y X W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W X Y X W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W X W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N M L K J I H G F E D C B A
A B C D E F G H I J K L M L K J I H G F E D C B A
A B C D E F G H I J K L K J I H G F E D C B A
A B C D E F G H I J K J I H G F E D C B A
A B C D E F G H I J I H G F E D C B A
A B C D E F G H I H G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G F E D C B A
A B C D E F E D C B A
A B C D E D C B A
A B C D C B A
A B C B A
A B A
A
Seperti biasa, ini adalah kode-golf sehingga celah standar berlaku dan jawaban terpendek dalam byte menang!
sumber
Jawaban:
Python,
184 174169 byteSunting: disimpan 5 byte berkat @ nedla2004
sumber
g
tiga baris. 2.) Tetapkanrange
ke variabel. Anda dapat melihat keduanya di sini . (Catatan: Sebelumdef f(x,y,z):
ada spasi, sebelumfor
loop ada tab.range
yang bisa Anda ganti?R((a-i))
menjadiR(a-i)
danR((a-i-1))
menjadiR(a-i-1)
, bukan?for
loop di dalam daftar pemahaman.print
.05AB1E , 13 byte
Kode:
Penjelasan:
Menggunakan pengkodean CP-1252 . Cobalah online!
sumber
MATL ,
2524 byteCobalah online!
Alternatif yang lebih panjang:
1Y20hiZv&+G-t0>*1&!t0*hTe)
(26 byte)Zv&+64+G-t64>*l2&Y"tZyP:o*c
(27 byte)Penjelasan
sumber
V , 45 byte
Cobalah online!
Ini akhirnya menjadi jauh kurang golf daripada yang saya harapkan, jadi saya belum akan memposting penjelasan. Mudah-mudahan saya bisa mengurangi lebih dulu. Seperti biasa, ini hexdump:
sumber
J, 34 byte
Mengambil nomor sebagai input dan mengembalikan array karakter 2D.
Penjelasan
Test case terurai
Mari kita coba ini dengan masukan
5
.Uji kasus
sumber
Jelly , 13 byte
TryItOnline!
Bagaimana?
sumber
Pyke, 12 byte
Coba di sini!
Nonaktifkan peringatan untuk output yang ditentukan
sumber
C #,
266263262261245238235232 byteGolf:
Tidak dikoleksi dengan komentar:
Cobalah: http://rextester.com/WIL67940
Mengembalikan daftar string. Setiap string berisi satu garis output.
Saya melakukan itu untuk kesenangan dan pelatihan. Saya menyadari bahwa memenangkan salah satu kode-golf dengan C # berada di luar jangkauan.
EDIT1: Mengubah interpolasi string ke
+
operator.EDIT2:
c <= 'A' + i
=>c < 'B' + i
EDIT3: Ditukar
char
denganvar
.EDIT4: Mengubah tipe pengembalian dari
void
menjadiList
.EDIT5: Penghapusan variabel yang tidak perlu.
EDIT6: Cara baru untuk memisahkan separuh garis.
EDIT7: @ Kaspar Kjeldsen, terima kasih.
sumber
C,
124123 byteMenyimpan 1 byte berkat Mukul Kumar
Saat ini saya tidak bisa mendapatkan kepala saya untuk mengubah loop ganda menjadi satu, akan membiarkannya seperti ini untuk saat ini.Sebenarnya ini lebih besarJadi saya hanya membiarkan loop bersarang.
Menggunakan norma Manhattan untuk mendapatkan bentuk berlian.
Tidak Disatukan:
sumber
j==2*n
denganj-2*n
dan bertukar? ()
nilai-nilai dengan:()
nilaiPython,
158154140139 byteIni adalah posting pertama saya, jadi lembutlah! Saya menggunakan [:: - 1] untuk membalik string, jadi mungkin ada beberapa optimasi yang bisa didapat di sana. Komentar diterima.
EDIT:
Terima kasih @Rod untuk penunjuk ke tautan bermanfaat ke topik golf kode Python dan juga untuk mengingatkan saya bahwa surat-surat memerlukan spasi di antara mereka. Juga terima kasih @wec untuk tips umum tentang menghilangkan spasi.
sumber
=
), setelah koma, dan sebelum tanda kurung buka dalam pernyataan cetak. Indentasi python dapat berupa level apa saja asalkan konsisten, sehingga Anda dapat menyimpan 3 karakter dengan mem-independen pernyataan cetak Anda hanya satu ruang alih-alih empat. Itu adalah penghematan mudah yang bisa saya lihat.z
hanya menggunakan satu kali, Anda tidak perlu menggunakan variabel, cukup taruhs*2-1
langsung dalamcenter
fungsi. Hanya satu detail, output harus memiliki spasi di antara huruf-huruf,' '.join
tepat setelah cetakan sudah cukup (tetapi Anda perlu mengolahnya kembalis*2-1
untuk mendapatkan nilai yang tepat).range
dan untuk[:]
adalah0
, jadi Anda tidak perlu menjelaskannya secara eksplisitBrain-Flak, 630 + 3 = 633 byte
Ini membutuhkan
-A
bendera untuk berjalanCobalah secara Online
Ini bukan golf yang hebat tapi tantangan ini cukup sulit di Brain-Flak
sumber
Pyth, 23 byte
Cobalah online
sumber
TSQL, 261 byte
Permintaan satu baris - tanpa perulangan
Sayangnya biola memakan ruang pada awal garis output. Spasi akan ada di sana jika dijalankan di studio manajemen SQL Server
Biola
sumber
Ruby,
137 115 10084 byteTerima kasih untuk manatwork atas komentarnya.
sumber
0..n-1
→0...n
.n>0?…:""
.Di luar 93 , 175 byte
Cobalah online!
Mungkin tidak bermain golf dengan sangat baik. Baiklah. Ini cukup sulit dengan befunge:
Semoga berhasil mencari tahu cara kerjanya! Saya hampir tidak tahu.
sumber
C #, 199 byte
Seperti biasa, C # bukan bahasa golf, tapi saya lebih suka kode "dapat dibaca" lebih dari kode esoterik. Juga saya hanya melakukan ini untuk bersenang-senang :)
Ini adalah versi yang tidak diklik, sehingga Anda dapat dengan mudah memahami apa yang saya lakukan:
(Saya pikir ini bisa dioptimalkan banyak ..)
sumber
Java, 213 byte
Tidak Disatukan:
sumber
Java, 394 Bytes
Saya biasanya melakukan C #, tapi ada baiknya mencampurnya ...
Golf:
Tidak Disatukan:
Uji:
sumber
R,
1009787 byte(Pembaruan:
scan()
untuk input; dilecehkan (x-1): 1 == x: 2-1.)Tidak terlalu buruk untuk salah satu bahasa kata kunci dari tampilannya (karakter-karakter khusus itu akan selalu menjadi lebih baik).
sumber
PHP,
122116 byteapakah ada cara yang lebih pendek?
sumber
JavaScript (ES6), 121 byte
Dimana
\n
mewakili karakter baris baru literal. Output dalam huruf kecil.sumber
Batch, 269 byte
Jalur 2 berakhir dalam 25 spasi; ini berarti bahwa ketika indeks alfabet menjadi negatif, kuadrat tersebut tetap kosong.
sumber