Tujuan Anda adalah membuat lagu alfabet sebagai teks dalam bentuk berikut (secara berurutan):
A is for <word starting with A>
B is for <word starting with B>
C is for <word starting with C>
...
Z is for <word starting with Z>
Contoh output:
A is for Apple
B is for Banana
C is for Carrot
D is for Door
E is for Elephant
F is for Frog
G is for Goat
H is for Hat
I is for Icicle
J is for Jelly
K is for Kangaroo
L is for Lovely
M is for Mom
N is for Never
O is for Open
P is for Paste
Q is for Queen
R is for Rice
S is for Star
T is for Test
U is for Underneath
V is for Very
W is for Water
X is for X-ray
Y is for Yellow
Z is for Zipper
Aturan:
Setiap "huruf" dari lagu memiliki baris sendiri, jadi ada 26 baris, dan kemungkinan linefeed.
Outputnya peka terhadap huruf besar-kecil:
- Huruf pada awal setiap baris harus dikapitalisasi.
is for
adalah huruf kecil.- Kata yang dipilih tidak perlu huruf besar, tetapi mungkin. Semua lini harus konsisten.
Kata yang dipilih untuk setiap baris terserah Anda, tetapi harus berupa kata bahasa Inggris yang valid dengan setidaknya 3 huruf, dan tidak boleh berupa kata hubung (suka
and
ataubut
), kata seru / seru (sukahey
atauyay
), singkatan (sukaXLS
), atau nama (sepertiJon
).Meskipun saya ragu ada orang yang akan merasa lebih pendek, saya akan merasa dapat diterima untuk menggunakan frasa alih-alih satu kata. Jadi jika karena alasan tertentu
S is for Something smells fishy...
lebih pendek, lakukanlah.Masukkan output program Anda dalam jawaban Anda, atau setidaknya daftar kata-kata yang Anda gunakan (jika ada tautan untuk menjalankan kode Anda secara online, kami tidak perlu melihat seluruh output).
Kode terpendek menang
Tantangan ini terinspirasi oleh video ini .
sumber
Jawaban:
SOGL 0.8.1 ,
6032 bytePenjelasan:
Ini adalah jawaban Jonathan Allan , tapi porting ke bahasa ini.
Versi lama: (SOGL 0.8.2)
keluaran:
Ini bukan bahasa terpendek yang bisa dilakukan oleh bahasa ini, tetapi harus menjadi yang terbaik dengan kata-kata yang dikodekan.
sumber
Bash (+ coreutils),
81,87,82, 78 byteMenggunakan halaman manual untuk X , sebagai sumber kata-kata.
Golf
EDIT
|&
untuk menyimpan 5 byte;Uji
sumber
|&
, sehingga dapat dipahami.Python 2 ,
8877 byte-11 byte terima kasih kepada xnor (hindari zip dengan melintasi string dan menghitung
c
dari 65)Cobalah online!
(Port jawaban Jelly saya, saat itu 56 byte.)
sumber
x
secara paralel .Unt
? Tidak dapat menemukannya di mana punUnt
itu sebuah kata, tetapiUt
begitu Anda dapat menggantin
dalam literal Anda dengan\0
untuk membuat ini valid dan hanya menambahkan satu byte lagi. Edit aturan Nevermind mengatakan harus panjangnya 3 huruf ... hmmmPesta,
78, 69 byteAardvarks, Babushkas, dan Kamikaze!
Golf
EDIT
Uji
Manfaatkan / usr / share / dict / kata-kata :
sumber
PowerShell ,
15014111775 byteCobalah online!
Loop dari
65
ke90
(yaitu, ASCIIA
keZ
). Setiap iterasi, kita mengubah bilangan bulat menjadi yang sesuaichar
(yaitu, ASCII65
untukA
), menyimpannya menjadi$i
untuk digunakan nanti, menyatukan string itu denganis for $i
, dan kemudian menempel di tengah kata yang sesuai. Itu dilakukan dengan mengindeks ke string panjang (dipinjam dari jawaban Jonathan Allan ). Akhiri dengan huruft
untuk membuat kata tiga huruf.String yang dihasilkan semuanya tersisa di pipa, dan implisit
Write-Output
pada akhirnya mencetaknya dengan baris baru di antaranya.Menyimpan banyak byte berkat daftar kata Rod
Borrowed dari jawaban Jonathan Allan
sumber
[char]$
contohJelly , 39 byte
TryItOnline!
Berdasarkan versi 56 byte (dua di bawah), tetapi mengubah kata-kata untuk menghapus semua huruf tengah
"u"
sehingga dapat diindeks ke dalam kamus kata"anisole"
*, yang memiliki kenyamanan memiliki huruf-huruf yang kita butuhkan semua pada indeks kurang dari enam:1:a, 2:n 3:i, 4:s, 5:o (6:l), 0:e
(perhatikan"e"
di sebelah kanan ada di indeks nol [juga 7 dan -7 dan nomor lainnya kongruen ke 0 mod 7]). Ini juga awal dalam kamus sehingga hanya memiliki dua dan bukan indeks pencarian tiga byte yang jauh lebih umum ("anisogamete"
juga akan bekerja untuk 2).* Nama sekolah lama untuk aroxy etoxy methoxybenzene, sering digunakan dalam parfum.
Bagaimana?
Sebelumnya, 46
Kata-kata semuanya memiliki huruf kedua "s" atau "a" dan huruf terakhir "p" atau "t" menggunakan pencarian basis empat dalam produk Cartesian "sa" dan "pt". Kecuali kata "U", yang diubah kode menjadi "Gunakan" (menggunakan yang relatif besar
F”e272¦
di akhir) - jika saya dapat menemukan daftar kata seperti ini yang tidak memiliki pengecualian seperti itu, kita akan melihat 39 byte .Daftar kata:
coba yang ini
56 byte sebelumnya
Daftar kata:
Ini diformat, cobalah
Sebelumnya, 83 byte
... mari kita mainkan "Temukan huruf mana yang tidak memiliki binatang!" ada
satu, dan hanya satu - waspada untuk ikan herring merah(bohong, herring merah adalah xenon, yang merupakan elemen, jelas bukan binatang) , adalah dua kata lima huruf di sini yang bukan hewan (xenon menjadi satu) :(tentu saja ini diformat dengan benar, coba - saya hanya berpikir saya akan menghemat ruang)
sumber
Xenon
bukan binatang. Saya yakin Anda membuat lelucon dengan memilikiH is for Herring
, tapi saya rasa tidak.Uut
?Retina ,
8987 byteDisimpan 2 byte berkat Martin Ender
Cobalah online!
Saya memilih satu kata untuk setiap huruf yang diakhiri
t
(beberapa di antaranya tidak jelas).Penjelasan
Ganti input yang tidak ada (kosong) dengan teks di atas.
Ganti setiap huruf kapital dengan
(newline)(itself) is for (itself)
. Ini menghasilkan teks di atas yang dipisah menjadi beberapa baris terpisah... dan seterusnya
Namun, karena baris baru ditempatkan sebelum modal masing-masing, ada baris baru yang harus dihapus. Itu dihapus pada tahap ini.
Letakkan a
t
di akhir setiap baris, karena setiap kata yang digunakan dalam lagu berakhirt
.sumber
$&
atau$0
alih-alih$1
. Sebenarnya itu mungkin juga menyimpan byte pada tahap split saya.$&
yang tepatnya dilakukan? Saya tidak melihatnya di wiki GitHub.$0
(dan itu hanya bagian dari rasa .NET, dan juga sebagian besar rasa lainnya).Retina ,
9288 byteDisimpan 4 byte dengan meminjam ide dari jawaban Business Cat .
Hitungan byte mengasumsikan penyandian ISO 8859-1.
Cobalah online!
Berdasarkan daftar kata AdmBorkBork , tetapi saya telah mengubah beberapa kata lagi menjadi kata-kata yang berakhir
ad
untuk menghemat lebih banyak byte pada akhiran umum.Penjelasan
Ubah input kosong (tidak ada) menjadi string ini. Ini berisi semua huruf serta kata-kata yang tidak berakhir
ad
.Masukkan umpan baris sebelum setiap huruf besar dan kemudian ubah menjadi
X is for X
.Cocokkan huruf-huruf yang sekarang sendiri dan tambahkan
ad
untuk melengkapi kata-kata singkat.Buang baris kosong yang telah dibuat dengan memasukkan umpan baris sebelumnya
A
.sumber
PHP,
122124127120115101 byteMengikuti struktur "standar"
<letter><filler>t
.Saya mencoba memunculkan kata-kata yang sebelumnya tidak digunakan oleh siapa pun.
Jika Anda melihat kata yang ingin Anda ganti, katakan padaku.
Baris baru direpresentasikan sebagai
\n
tetapi dihitung sebagai 1 byte.Keluaran:
Kata-kata aneh:
sumber
vprintf
danzend_version
pasti bukan kata-kata bahasa Inggris. Sangat sedikit dari entitas ini sebenarnya kata-kata.zit
kata yang aneh, setidaknya, saya pikir semua orang harus sudah tahu apa artinya.Pyke,
555148 byteCoba di sini!
Tautan adalah untuk 3 panjang dan tidak memenuhi syarat karena kata-kata termasuk kata sambung.
Output:
Anda dapat menguji ini di luar Pyke menggunakan algoritma yang sama. Membutuhkan dictionary.json .
sumber
Timeout running code. BAD EVAL
Pastikan Anda memperbarui tautan "Coba daring".Z is for zoofilia
Saya akan mempertimbangkan dengan serius sebelum membiarkan anak-anak saya menyanyikan ini.Japt ,
5250 byteBerkolaborasi dengan @ETHproductions
Berisi banyak unsintables. Uji secara online!
Daftar kata adalah:
Japt menggunakan pustaka kompresi string shoco , yang mengurangi proses umum huruf kecil menjadi byte. Berikut adalah daftar lengkap semua run dua huruf yang diringkas menjadi satu byte:
Jadi idenya adalah untuk membentuk sebuah kata dengan salah satu pasangan ini untuk setiap huruf alfabet.
Satu hal yang menarik untuk dicatat adalah bahwa sementara Japt secara implisit dapat mendekompresi string yang dibungkus dengan backticks, itu sebenarnya satu byte lebih lama di sini karena Anda harus mengambil dua karakter dalam string yang didekompresi, daripada satu.
sumber
05AB1E ,
454239383736 byteCobalah online!
Penjelasan
Au
mendorong alfabet huruf besar.'Æå
mendorong katascenario
.•à¡P°€kš¦zᮕ
mendorong nomor basis-1036774474076746444766322426
.Sè
menggunakan digit tersebut untuk mengindeksscenario
.)ø
ritsleting string tersebut bersama-sama ke dalam daftar[An, Bi, Co, ..., Zi]
Kata-kata yang digunakan:
['Ant', 'Bit', 'Cot', 'Dot', 'Eat', 'Fat', 'Got', 'Hat', 'Ist', 'Jot', 'Kit', 'Lot', 'Mat', 'Nit', 'Oat', 'Pat', 'Qat', 'Rot', 'Sit', 'Tit', 'Unt', 'Vet', 'Wet', 'Xat', 'Yet', 'Zit']
Versi 33 byte menggunakan beberapa kata yang saya tidak yakin
Kata-kata:
['Ant', 'Bat', 'Cat', 'Dat', 'Eat', 'Fat', 'Gat', 'Hat', 'Ist', 'Jat', 'Kat', 'Lat', 'Mat', 'Nat', 'Oat', 'Pat', 'Qat', 'Rat', 'Sat', 'Tat', 'Ust', 'Vat', 'Wat', 'Xat', 'Yat', 'Zat']
sumber
Ruby,
93 84 69 63 5862 byteKeluaran:
Semua kata 3 huruf berakhir dengan 't', sebagian besar dengan 'at'.
Menggunakan kata-kata kontroversial (iat, dat, amp. Ump) - 55 byte:
Masih mencoba menemukan pola, saya pikir mungkin untuk menggunakan hanya 2 ujung yang berbeda, dan menyederhanakan semuanya.
Terima kasih @Value Ink dan @Business cat untuk membantu.
sumber
/#{l}../
kit
.///, 163 byte
Cobalah online
Hm, pelajari sesuatu hari ini ...
sumber
05AB1E ,
7268 byteKode:
Menggunakan pengkodean CP-1252 . Cobalah online!
Penjelasan
Kode berikut:
mendorong array ini:
Dan diproses menggunakan kode berikut:
sumber
”–³”=Apple
danint(–³,214)=23891
tapi saya masih tidak melihat korelasinya di sini.Clojure,
159232 byteNah, sekarang ini tentu saja solusi non-bersaing karena akan jauh lebih mudah untuk meng-hardcode kata-kata yang digunakan. Meletakkannya di luar sana hanya demi jawaban yang benar (dan tidak menggunakan daftar kata orang lain).
Pada dasarnya masih mendapatkan semua fungsi yang didefinisikan dalam
clojure.core
namespace, tetapi setelah itu mengevaluasidoc <function name>
dan memasukkannya ke dalam string. Setelah itu menggabungkannya menjadi satu string besar (dengan kataxyst
) dan menemukan kata-kata yang tepat dari sana. Harus dijalankan di Clojure REPL.Keluaran:
Solusi lama:
sumber
or
, tidakorb
, untuk 1 byte.JavaScript (ES6), 82 byte
Fungsi anonim mengembalikan string. Berisi unsintables; inilah versi yang tidak:
Ini menggunakan teknik @ JonathanAllen, menggunakan hanya tiga kata kata yang diakhiri
t
. String akan didekompresi menjadiAnBiCoDoEaFaGOHuIsJoKiLoMaNiOuPaQaRoSiTiUnVeWeXaYeZi
.Saya mencoba merantai dua huruf seperti:
Saya sekarang telah berhasil sampai ke sini
X
tetapi terjebakY
; sejauh yang saya tahu, satu-satunyaX
kata tiga huruf yang dapat dicapai adalahXis
, dan tidak ada kata tiga huruf yang dimulai denganYs
.Sebagai catatan, string penuh adalah
ceeeweeereueaebiueeiziais
...sumber
uzi
dantiz
...sei
,ski
atausri
, yang daun Anda denganree
,roe
,rue
,rye
, yang daun Anda dengan ... hanya tiga suratq
-words saya dapat menemukan adalahqat
,qis
, danqua
. Apakah ada halaman Wiktionary dengan lebih banyak kata tiga huruf?p
kata - kata yang berakhir denganu
.)piu
, jadi itu tidak masalah sama sekali: P Terima kasih!piu
tampaknya cukup batas - wiktionary tidak memilikinya sebagai bahasa Inggris, dan dictionary.com memilikinyapiù
(tidak tahu bagaimana kami mempertimbangkan aksen untuk tantangan ini). Tapi ya,ys_
akan jadi masalah.Mathematica, 97 byte
Lihat di Mathematica
WordList
untuk kata ketiga yang dimulai dengan setiap huruf; ini menghindari satu kata kata dan kata seru. Memiliki baris baru trailng.sumber
Groovy,
7673 byte(diedit dari 76 hingga 73 byte, terima kasih, kucing)
Terinspirasi oleh solusi ruby:
kami menggunakan
any
masing-masing karena lebih pendek dan semua pernyataan println mengembalikan false. Untuk kasus khusus dalam string, kami menggunakan String.find yang pada asyik mengembalikan kecocokan atau nol. Pada nol, kami menggunakan operator elvis?:
untuk mengembalikan kata yang diakhiri denganat
gantinya.Mencetak:
Groovy, rekursi, 74 byte
mencetak teks dari jawaban pertama dan kemudian melempar PatternFormatException. Kami menyebut penutupan secara rekursif dimulai dengan 'A' dan bertambah
++char
hingga karakter setelahZ
melempar kesalahan.Groovy, dengan curang, 77 byte
Dengan risiko digantung:
yaitu membaca data di halaman ini dan mencetak definisi dari jawaban yang valid di awal. Dalam pembelaan saya ... itu mencetak jawaban yang diminta ... sekarang tidak ada yang mengedit halaman ...
Groovy, menggunakan 'times', 81 byte
Membangun jawaban python dengan pola kata tiga huruf:
cetakan:
Groovy, dengan berulang pada main (...), 83 byte
Dengan asumsi kami menghitung baris baru sebagai satu karakter.
mencetak teks dari jawaban pertama dan kemudian melempar PatternSyntaxException.
Groovy, masing-masing menggunakanIndex, 88 byte
Groovy, menggunakan transpose, 102 byte
sumber
kit
.05AB1E , 77 byte
Cobalah online!
Gunakan string berikut yang dikompresi:
ASSBINCATDOTEATFATGOTHATILLJOTKITLOTMETNOTOATPATQUEROTSETTITUSEVATWETXISYIPZAP
Dikonversi ke Base-214:
Menggunakan daftar kata-kata scrabble 3 huruf: http://wordfinder.yourdictionary.com/letter-words/3
Output adalah sebagai berikut:
Memiliki versi 70 byte, tetapi kata-kata 2 huruf tidak diizinkan.
Dijelaskan:
sumber
qui
bukan kata bahasa Inggris. Mencari ini hanya mengungkapkan kata Latin.Que
saya tahu ada kata scrabble hukum 3 huruf, salah mengeja.}»
bisa diganti dengan,
.SmileBASIC,
1311138281 byteSekarang menggunakan kata-kata yang masuk
t
sumber
Lithp ,
136125117 byte(Split untuk keterbacaan)
Cobalah online!
Ini cukup banyak port dari jawaban Python
each
indeks(scope #)
Keluaran:
sumber
Batch, 250 byte
Karena saya tidak akan pernah mendapatkan skor yang layak, saya mencari kata - kata lucu terpendek yang dapat saya temukan:
sumber
ditumpuk , 72 byte
Ada dua untuk 72 byte!
Cobalah online! Menggunakan pola yang luar biasa itu. (Sebelum Anda bertanya,
++
akan menjadi token tunggal, jadi+ +
gunakan saja.)Keduanya bekerja dengan beralih dari
65
ke90
dan mendapatkan urutan karakter yang benar. Catatan:#:
adalah alias untukchr
#
adalah alias untukget
{!...}
sama dengan{ n : ... }
(lambda dengann
sebagai parameter)Untuk 73 byte:
sumber
Mathematica 93 Bytes
hasil panen
sumber
Groovy, 72 byte
Keluaran
sumber
Python 3,
145137135 byteSaya mengorbankan beberapa byte untuk pseudo-randomise output dengan setiap kali dijalankan. Idenya adalah untuk mencari kata-kata huruf kecil dari minimal 3 karakter
/usr/share/dict/words
dan kemudian memilih satu dari daftar itu menggunakanid([x])%99
.Suntingan
title()
karena kata-kata tidak harus ditulis dengan huruf besar."\n(%c.{3,})"
(+ 3 byte) untuk memungkinkan penghapusan,re.M
(- 5 byte).Contoh output:
sumber
Qohele
, meskipun pencarian mengungkapkan bahwa itu adalah buku atau volume teks suci.GNU sed, 81 + 1 (r flag) = 82 byte
Ini adalah implementasi sed dari daftar kata dari jawaban Jonathan Allan .
Kata-kata tersebut, kecuali huruf akhir yang dibagikan
t
, diberikan dalam bentuk gabungan pada baris 1, dan kemudian dicetak dalam format yang diminta oleh baris 2. Ada baris tambahan yang mengikuti.Jalankan :
sumber
Java 7,
124121 byteBerdasarkan jawaban @JonathanAllen , karena Java tidak memiliki kamus bawaan yang mewah. ;) Saya mencoba menemukan huruf akhir lain untuk seluruh alfabet (seperti
s
ataun
atauy
), atau huruf tengah (sepertia
ataue
), tetapi sebagian besar hanya kehilangan satu atau dua kata, jadi saya akhirnya menggunakant
juga. Kata-kata dipilih secara manual dari wordhippo.com .Tidak Disatukan:
Coba di sini.
Keluaran:
sumber
+a+++
. Saya suka menulis itu: PPHP,
91878676 byteberdasarkan daftar kata Jonathan Allan :
versi yang lebih lama, 86 byte:
atau
Jalankan dengan
-nr
.keluaran
Untuk kata-kata aneh, lihat jawaban Ismael
sumber