Diberi huruf alfabet Inggris, tugas Anda adalah membuat alfabet semi-diagonal sebagai input.
Bagaimana cara membangun alfabet Semi-Diagonal?
Deskripsi Singkat : Pertama, Anda mengambil posisi huruf dalam alfabet, P
( P
diindeks 1 di sini). Kemudian, Anda mencetak setiap huruf hingga input (inklusif) pada suatu garis, didahului oleh P-1
dan ulangi huruf tersebut P
, bersinggungan dengan spasi.
Contoh :
Mengingat
F
, program Anda harus menampilkan:SEBUAH BB CCC DDDD EEEEE FFFFFF
Mengingat
K
, program Anda harus menampilkan:SEBUAH BB CCC DDDD EEEEE FFFFFF GGGGGGG HHHHHHHH IIIIIIIII JJJJJJJJJJJ KKKKKKKKKKKK
Mengingat
A
, program Anda harus menampilkan:A
Aturan
Anda dapat memilih huruf kecil atau huruf besar, tetapi itu harus konsisten.
Anda mungkin memiliki ruang asing sebagai berikut:
- Satu ruang terdepan yang konsisten (di setiap baris).
- Baris baru yang membuntuti atau memimpin.
- Ruang tertinggal.
Input dan output dapat diambil dengan cara standar apa pun, dan celah default berlaku.
Anda diizinkan untuk mengeluarkan daftar baris saja, asalkan Anda juga menyediakan versi ascii-art .
Ini adalah kode-golf , jadi kode terpendek dalam byte menang!
Terinspirasi oleh tantangan ini .
Jawaban:
Python 3 , 59 byte
Cobalah online!
Python 3 , 61 byte
Cobalah online! (tautan ke versi cantik-cetak)
sumber
Python 2 ,
636159 byte-2 byte terima kasih kepada Rod. -2 byte terima kasih kepada Felipe Nardi Batista.
Cobalah online!
sumber
C, 89 byte
Cobalah online!
sumber
PowerShell ,
4542 byteCobalah online!
Mengambil input sebagai karakter literal, kemudian memutar melalui ibukota ke titik itu, setiap iterasi menambahkan jumlah ruang yang sesuai dan kemudian karakter hybrid.
Disimpan 3 byte berkat TessellatingHeckler.
sumber
"$args"
begitu banyak, yang tidak akan berhasil di sini, saya lupa tentang[0]
metodenya. Ha ha.JavaScript (ES6), 85 byte
Bekerja dalam huruf kecil untuk input dan output. Menghasilkan ruang terdepan dan ruang tambahan di setiap baris.
Demo
Tampilkan cuplikan kode
sumber
`${s} `
dapat diganti dengan(s+"")
penghematan satu byte(s+" ")
, tapi itu sama saja.APL (Dyalog) , 26 byte
Anjuran untuk karakter skalar. Mencetak daftar garis.
Cobalah online! (memiliki versi seni ASCII pada satu byte tambahan)
⎕
meminta input⎕A⍳
temukan ɩ ndex dalam A lphabet⍳
pertama yang banyak eg ntegers(
...)¨
terapkan fungsi tersembunyi berikut untuk masing-masing:⊃∘⎕A
memilih surat surat argument'th dari A lphabet⊢⍴
cyclically membentuk kembali ke panjang argumen' ',¨⍨
menambahkan ruang untuk masing-masing⍴∘'',
tambahkan string dengan panjang argumen (diisi dengan spasi)∊
ϵ daftar (ratakan)Versi seni ASCII hanya memiliki
↑
di sebelah kiri; mencampur daftar string ke dalam tabel karakter.sumber
Perl 5 , 31 byte
30 byte kode +1 untuk
-l
.Cobalah online!
sumber
say
alih-alih-l
tanda: Coba online!-E
/-M5.01
, saya telah menggunakansay
banyak di masa lalu, dan mungkin akan menyalahgunakan fakta yangsay
merupakan alternatifprint
dalam tantangan sumber terbatas atau serupa mungkin, tapi demi -3, saya akan terus apa adanya untuk saat ini. Lihat posting meta ini untuk argumen yang adil . Hargai inputnya!Dyalog APL, 38 byte
Cobalah online!
Bagaimana?
⎕A↑⍨
- ambil alfabet hingga⎕A⍳⍵
- karakter input¨
- untuk masing-masing char⍵,' '
- ambil char dan spasi(...)⍴
- membentuk kembali ke2×y←⎕A⍳⍵
- Dua kali indeks char di alfabet(y/' ')
- dan menambahkan ruang indeks-of-char↑
- lalu ratakansumber
APL (Dyalog Classic) , 26 byte
Cobalah online!
Penjelasan
sumber
{}
, ganti⍵
dengan⎕
, dan klaim itu adalah "program lengkap" daripada fungsi. Itu akan membuat solusi Anda yang terbaik (sejauh ini).V ,
28, 26, 25, 23 byte ( Bersaing )Cobalah online!
Perhatikan bahwa meskipun saya telah berencana untuk menambahkan fitur-fitur tertentu untuk waktu yang lama, tantangan ini yang meyakinkan saya untuk akhirnya melakukannya.
Output berisi satu ruang terdepan di setiap baris dan satu baris tambahan.
Hexdump:
Penjelasan:
sumber
05AB1E , 10 byte
Cobalah online!
Terima kasih kepada Adnan .
Tambahkan
»
untuk membuatnya dicetak dalam garis yang terpisah.sumber
<
salah satu ruang terkemuka yang konsisten tidak masalah.A¹¡н«ðâƶāú
harus bekerja selama 10 byte¹¡
akan membuatnya tidak berfungsi ... oh jadi itu sebabnya ada«
di sana. : pR,
9488 byte-6 byte terima kasih kepada Giuseppe
Tidak Disatukan:
sumber
f
merupakan satu-liner, dan menggunakanmatch
alih-alihwhich
menyimpan byte.Haskell,
5244 byteMengembalikan daftar garis.
Cobalah online!
Sunting: @ jferard: disimpan tiga byte. Terima kasih!
sumber
f k=[tail$[" ",s:" "]>>=(['A'..s]>>)|s<-['A'..k]]
tail$
.JavaScript (ES8), 92 byte
Menggunakan huruf kecil. Garis memiliki satu ruang utama dan satu tambahan. Mengembalikan array garis.
Cuplikan Tes
sumber
Sekam , 13 byte
Mengambil karakter dalam tanda kutip tunggal sebagai argumen baris perintah, mencetak hasilnya ke STDOUT. Cobalah online!
Penjelasan
Saya mengeksploitasi cara Husk mencetak daftar daftar string: gabungkan daftar dalam dengan spasi dan daftar luar dengan baris baru.
sumber
05AB1E ,
151413 byteDisimpan 1 byte berkat Adnan
Cobalah online! atau versi seni Ascii
Penjelasan
sumber
A¹¡н«
bukannyaADIk>£
harus bekerjaA¹¡н
tetapi tidak mempertimbangkan«
untuk mendapatkan surat terakhir jadi itu tidak cukup baik: PAPL (Dyalog Unicode) , 22 byte SBCS
Cobalah online!
Penggunaan
⎕io←1
. Mencetak ruang terkemuka, yang diizinkan.sumber
QBasic,
797472 byteTerima kasih kepada Taylor Scott untuk penghematan byte (dua kali!)
Gunakan huruf besar. Input dengan penekanan tombol dan tidak bergema ke layar.
Penjelasan
Kami mengulang
i
dari1
posisi huruf pembatas di alfabet (berbasis 1). Untuk masing-masingi
, kami pindah ke kolomi
layar menggunakanTAB
; kemudian,i
kali, kita mencetaki
huruf alfabet diikuti oleh spasi.sumber
INPUT$(1)
perintah sebagai pengganti langsung untuk variabelz$
untuk delta -2 byteJapt
-R
,24231715 byteKeluaran array, termasuk baris baru terkemuka dan ruang terkemuka & tertinggal di setiap baris.
Menguji
sumber
Arang , 18 byte
Cobalah online!
sumber
E…·?θ⁺× κ⪫× κι
akan melakukan pekerjaan dalam 14 byte?
masuk ke sana. Seharusnya itu yangA
kupikirkan. Oh, tunggu, ohhhhh aku mengerti maksudmu.Braingolf , 65 byte
Cobalah online!
Huruf kecil.
Berisi 1 trailing space di setiap baris, dan trailing newline di akhir output.
sumber
C # (.NET Core) , 103 byte
Cobalah online!
sumber
JavaScript,
10294 byte2 byte disimpan berkat Neil
sumber
Retina , 51 byte
Cobalah online! Penjelasan:
Gandakan huruf (pertama).
Putar kembali 1 dalam alfabet, atau hapus jika itu duplikat
A
. Terus menduplikasi dan memutar sampai kita menduplikasiA
, pada saat itu penghapusan membatalkan duplikasi dan loop selesai.Ganti setiap huruf dengan garis dengan huruf yang empuk di kedua sisi.
Masukkan duplikat huruf di antara semua pasangan ruang padding di sebelah kanan huruf yang ada.
sumber
Haskell , 57 byte
Cobalah online!
sumber
Arang , 15 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
Jika bantalan tambahan legal, ini akan bekerja selama 14 byte:
Cobalah online! Tautan adalah untuk mengucapkan versi kode.
sumber
Mathematica, 70 byte
huruf kecil
menampilkan daftar
thanx @ngenisis untuk koreksi
Untuk tempat versi ascii-art
Column@
di awalsumber
Excel VBA, 72 Bytes
Fungsi jendela langsung VBE anonim yang mengambil input dari sel
A1
dan output ke jendela langsung VBEsumber
Pyth , 17 byte
Coba di sini (versi cetak cantik).
Bagaimana cara kerjanya?
hxG
- Mengambil indeks input dalam alfabet huruf kecil.<G
- Memangkas setiap karakter setelah input dari alfabet..e
- Peta yang dihitung. Peta di atas alfabet yang dipangkas dengan indeks sebagaik
dan huruf sebagaib
.*kd
- Tambahkank
spasi.+bd
-b
+ a spasi (huruf + spasi saat ini).*...hk
- Ulangik+1
kali.+(...)(...)
- Gabungan.sumber
.e+*kdjd*bhk<GhxG
17 byte juga.e+*kd*+bdhkhcGQ
C ++ (gcc) , 164 byte
Usaha pertamaku setelah sekian lama mengintai!
Kode tidak dikumpulkan di bawah:
Cobalah online!
sumber