Tulis sebuah program atau fungsi yang menampilkan teks persis ini, tidak peka huruf besar-kecil:
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.
(Berdasarkan lagu alfabet yang banyak dipelajari anak-anak Amerika untuk membantu menghafal alfabet, meskipun diedit untuk lebih kompresif.)
Output harus terlihat persis sama seperti di atas (sekali lagi, kasus-sensitif), tetapi mungkin berisi spasi pada setiap baris dan / atau trailing baris baru. Perhatikan periode di akhir.
Ini adalah kode-golf, jadi kode terpendek dalam byte menang.
code-golf
string
kolmogorov-complexity
Produksi ETH
sumber
sumber
/(?=[HQTW])/
H, I, J, K, LMNO, P
?Jawaban:
Vim,
42, 40 penekanan tombol / byteTerima kasih untuk Lynn dan jawaban vimnya yang luar biasa atas tip untuk mengambil alfabet dari bantuan.
Terima kasih kepada RomanGräf karena telah menghemat dua byte!
Penjelasan:
Kemudian, kita pindahkan ujung baris dengan
$
, ubah kembali karakter denganch
dan masukkan titik.sumber
05AB1E , 16 byte
Kode
Penjelasan:
Menggunakan pengkodean CP-1252 . Cobalah online!
sumber
Utilitas Bash + GNU, 36
Ideone.
sumber
echo {A..Y}, Z.|sed 's/[HQTW]/\n&/g'
?JavaScript (ES6),
6665 byteMengalahkan @Neil tidak mungkin ... Itu sebabnya saya melakukannya. :-)
Golf 1 byte berkat trik dari @LevelRiverSt . Menggunakan
String.fromCharCode
lebih lama 7 byte:Bagaimana itu bekerja
Ini secara rekursif menghasilkan masing-masing karakter dari alfabet dari
a
key
, menggunakan.toString()
. Tanda koma ditambahkan setelah setiap huruf, ditambah baris baru jika9568512>>i-9&1
1, atau spasi sebaliknya. Ketika rekursi melewati 34, yaituz
, fungsi hanya kembali"z."
.sumber
Python 2.7,
67 6663 byteDennis menyimpan satu byte.
sumber
exec
bukannyafor
harus menyimpan byte.Jelly ,
1918 byteTerima kasih kepada @Adnan karena bermain golf 1 byte!
Cobalah online!
Bagaimana itu bekerja
sumber
JavaScript (ES6),
8074 byteMungkin mungkin untuk mempersingkat ini dengan atob / btoa jika Anda dapat mengetahui cara menggunakan pengkodean ISO-8859-1. Sunting: Disimpan 6 byte berkat @RickHitchcock.
sumber
.join`, `
? Masukkan backslash sebelum backticks. (Ya, penurunan komentar berbeda, huh ...)Pyke,
231917 byteCoba di sini!
sumber
R,
8371 byteCobalah online!
Membuat matriks 3 baris (satu dengan huruf, satu dengan koma dan lainnya dengan spasi atau baris baru).
Sunting : Terima kasih Billywob!
sumber
cat(a,sep="")
menghemat beberapa byte:a=rbind(LETTERS,","," ");a[3,7+3*c(0,3:5)]="\n";cat(a[,-26],"Z.",sep="")
[-26]
onLETTERS
secara langsung menyimpan byte lain.CJam, 26 byte
Penerjemah online
sumber
Brainfuck, 117 byte
Empat baris pertama masing-masing memiliki ruang tambahan, dan program mengasumsikan sel 8-bit. Cobalah online!
(Menangani baris terakhir itu rumit ...)
sumber
Perl, 37 byte
Kredit ke @Dom Hastings untuk solusi ini (3 byte lebih pendek dari saya, lihat di bawah).
Jalankan dengan
-E
(atau-M5.010
) bendera:Versi saya sebelumnya, 3 byte lebih lama (total 40 byte):
sumber
say+(map"$_, ".$/x/[GPSV]/,A..Y),"Z."
JavaScript (ES6),
6664 byteRegex cocok dengan karakter tetapi bukan carriage return, jadi, dengan menggunakan regex replace, saya dapat menambahkan "," ke setiap karakter.
Sunting: Dihapus 2 karakter berkat ETHProductions
sumber
$1
ke$&
.Cheddar, 70 byte
Sepertinya ini tidak menjadi lebih pendek dari ini. Saya telah membuat versi lain dari ini yang menggunakan metode yang cukup menarik tetapi ini adalah yang terpendek
Cobalah online!
Penjelasan
The
@"
operator yang digunakan untuk menghasilkan string yang berkisar. Ini menghasilkan string mulai dari kode char kiri ke kode char kanan.Misalnya,
65
adalah kode char untukA
dan90
untukZ
. Melakukan65 @" 90
akan menghasilkan A sampai Z atau alfabet.sumber
C,
11210281 byteTerima kasih kepada cleblanc & LevelRiverSt!
sumber
i,c,d;main(){for(c=65;c<91;++c){if(c-"GPSVZ"[i])d=32;else d=10,++i;printf("%c%c%c",c,c-90?44:46,d);}}
i,c;main(){for(c=64;++c<91;)printf("%c%c%c",c,44+c/90*2,c=="GPSVZ"[i]?++i,10:32);}
. Perhatikan bahwa Anda dapat menempel sepenuhnya apa pun di antara?:
operator ternary, bahkan beberapa ekspresi yang dipisahkan oleh koma (ini mengevaluasi ke yang terakhir.)Brainfuck, 157 byte
Cobalah online
sumber
Ruby,
5654 byteBaris pertama berakhir dengan baris baru literal.
Sunting: menyimpan dua byte dengan mengganti
'A'..'Y'
dengan?A..?Y
.sumber
Vim, 32 byte
26o<C-V><C-V>64,<Esc>r.V{g<C-A>8Jj9Jj3Jj.j4JcH<C-R>"
Meninggalkan garis kosong di bagian akhir, yang diizinkan, tapi aneh karena kikuk ini. Lebih buruk lagi, saya mengakhiri dalam mode insert. Saya telah melihat beberapa orang lain melakukannya di sini, jadi saya kira itu diperbolehkan? Rasanya kotor.
26o<C-V><C-V>64,<Esc>
: Yang pertama<C-V>
membuat yang kedua menyisipkan secara harfiah. The<C-V>64
s daun ini dalam buffer akan berubah menjadi poin kode ASCII, kemudian ke huruf. Koma sudah masuk.r.
: Tidak akan pernah sampai di ujung lagi, begitu juga.
sekarang.V{g<C-A>
: Menggunakan peningkatan visual untuk mengubah semua64
huruf menjadi poin kode ASCII dari huruf kapital.8Jj9Jj3Jj.j4J
: Garis arbitrer bergabung. Yang pertama8J
bukannya7J
karena kita berurusan dengan baris kosong. Diulang3J
s memenuhi syarat untuk sebuah titik ulangi.cH<C-R>"
: Orang biasanya menganggapi<C-R>
sebagai mode insert mode, tapi ini lebih seperti mode mode makro. Hal-hal seperti<C-V>65
akan berjalan seolah-olah diketik, dan ditafsirkan sebagai titik kode desimal. Ini meninggalkan garis ekstra (diizinkan) di ujungnya, dan tetap dalam mode sisipkan.sumber
PowerShell v3 +,
607867 byteBAIK. Saya sudah benar-benar membaca, mengerti, dan mengikuti spesifikasi kali ini. Janji. : D
Mengambil array
65..90
dan mengulangi setiap elemen|%{...}
. Setiap iterasi, kami membuat string baru menggunakan penggabungan, pengindeksan, dan multiplikasi.Pertama, kami mengambil nomor saat ini dan
char
melemparkannya untuk menjadikannya surat ASCII. Itu digabungkan dengan karakter lain, berdasarkan pengindeksan ke string'.,'
apakah kita setuju90
atau tidak (yaitu, untuk menghitungZ.
sementara semua sisanya adalah koma). String tersebut digabungkan dengan" "
untuk memisahkan spasi huruf, dan string perkalian"`n"
berdasarkan pada nilai Boolean untuk apakah elemen saat ini adalah-in
array yang ditentukan (yaitu, apakah kita perlu menggabungkan pada karakter baris baru). String yang dihasilkan ditinggalkan di pipa.String-string itu dienkapsulasi dalam parens, dan
-join
diedarkan bersama menjadi string baru, yang kemudian juga ditinggalkan di pipeline dan tersiratWrite-Output
pada akhirnya mencetak hasilnya. Karena kita memiliki`n
string, maka secara otomatis dikonversi ke baris baru setelah dicetak.Membutuhkan v3 + untuk
-in
operator. Memiliki ruang tambahan di setiap baris, yang OK untuk spesifikasi tantangan.Contoh
sumber
PHP, 62 Bytes
hanya untuk perbandingan 87 Bytes
sumber
\n
."# (?=[HQTW])#"
dan pendekkan ganti ke"\n"
byte yang sama dan membuatnya lebih jelas. Untuk menggunakan fungsi yang sudah usang dapat membingungkan pemula. Dan istirahat fisik dapat diartikan salah pada sistem lain kemudian Unix. Anda dapat mempostingnya sebagai saran Anda sendiri.MATL,
3829 byte9 byte disimpan berkat @Luis!
Cobalah secara Online!
Penjelasan
sumber
R, 146 byte
Penjelasan:
LETTERS
sudah ditentukan sebelumnya untuk huruf besar.The
f
fungsi untuk concatenating vektor x pada,
dengan tambahany
(yang digunakan untuk baris baru).Kucing adalah yang digunakan saat mencetak
\n
sebagai baris baru.f
dipanggil pada huruf untuk membentuk baris dan kemudian pada baris lagi untuk membentuk seluruh output.Mungkin golf - saya tidak suka beberapa panggilan ...
sumber
CJam, 31 byte
Penjelasan:
Cobalah online
sumber
Julia, 71 byte
Membutuhkan 0,5 atau lebih baik untuk penyiaran
.()
sumber
print
definisi fungsi? Di sisi lain, tidak menyimpanjoin
ke variabel menghemat satu byte.join
. Saya salah menghitung. Menjalankan program mengembalikan string. Bukankah program mengembalikan string sebagai hasil yang valid? (Atau apakah itu hanya fungsi yang diizinkan untuk mengembalikan hal-hal yang dihitung sebagai output. Jika demikian,f()=
lebih pendek daripada ituprint()
)f()=
atau()->
baik-baik saja - saya pikir idenya adalah bahwa fungsi dapat ditentukan dan dapat dijalankan beberapa kali, dan sebaliknya ini akan menjadi potongan kode.Cheddar, 57 byte
Cobalah online! Bukankah itu cantik? Itu adalah persegi panjang yang bagus.
Dua penggantian regex.
(65@"90)
adalah huruf besar,.sub(/[GPSV]/g,"$0\n")
menggantikanGPSV
dengan dirinya sendiri dan"\n"
,.sub(/[^Z\n]/g,"$0, ")
menggantikan semua bukan baris baru danZ
karakter dengan dirinya sendiri dan", "
, dan"."
menambahkan final.
.sumber
Japt, 24 byte
Uji secara online!
Bagaimana itu bekerja
sumber
Jawa,
116109105104Tidak Disatukan:
sumber
||
menjadi|
(-3); berubahc==90
menjadic>89
(-1); berubah'.'
menjadi46
(-1); dan mengubah'\n'
ke10
(-2)."GPSV".contains(""+c)
bukannyac==71|c==80|c==83|c==86
.q, 46 byte
sumber
Retina, 43 byte
Memimpin baris baru adalah signifikan. Cobalah online!
Ini adalah pertama kalinya saya menggunakan Retina, jadi setiap kiat bermain golf dihargai ...
sumber
Pyth, 25 byte
Program yang mencetak hasilnya ke STDOUT.
Cobalah online
Bagaimana itu bekerja
sumber