Sajak vokal: Apel dan Pisang
Ada lagu anak-anak tradisional yang mengulangi teks yang sama berulang-ulang, hanya setiap kali setiap vokal diganti dengan vokal acak, tetapi konstan di seluruh bait saat ini.
Tantangan
Tujuannya adalah untuk mengusulkan kode terpendek yang melakukan transformasi pada teks input.
Aturan
- Anda harus mencetak sajak sebanyak yang ada vokal di dalamnya.
- Setiap cetakan harus dipisahkan dengan satu baris (kombinasi platform tertentu
\n
dan\r
diterima). - Untuk iterasi
i
, ganti setiap vokal dengani
v berbeda th dalam teks asli. - Teks input adalah urutan karakter ASCII yang dapat dicetak (kisaran
[32, 126]
. - Input tidak akan berisi jeda baris tertanam.
- Hanya karakter vokal yang harus terpengaruh, yang lain harus output persis seperti input.
- Hanya karakter vokal yang dihitung: vokal nasal, meskipun terdengar seperti vokal (seperti dalam bahasa Prancis "Tintin" ), tidak boleh ditangani sebagai vokal tunggal.
- Kasing penting untuk output, tetapi bersifat posisional (mengganti vokal huruf besar dilakukan dengan vokal pengganti huruf besar)
- Huruf vokal huruf besar tidak berbeda dengan huruf kecilnya (yaitu
a
<=>A
) - Vokal berturut-turut selalu dianggap terpisah (mis.
Boat
Menghasilkan keduanyaBoot
danBaat
) - Karena huruf tersebut
y
mewakili vokal atau soun konsonan (seperti yang kita berbicara bahasa Inggris), mengatasinya sebagai vokal atau konsonan diperbolehkan, namun jawaban harus secara eksplisit menyatakan apakah mereka menanganiy
sebagai vokal atau tidak.
Contoh:
Halo Dunia
Hello world!
memberi:
Helle werld!
Hollo world!
Kutipan dari teks bahasa Prancis asli (diterjemahkan), dengan y
ditangani sebagai vokal:
An elephant that was rambling all gently in the woods...
memberi:
An alaphant that was ramblang all gantla an tha waads...
En elephent thet wes rembleng ell gentle en the weeds...
In iliphint thit wis rimbling ill gintli in thi wiids...
Yn ylyphynt thyt wys rymblyng yll gyntly yn thy wyyds...
On olophont thot wos romblong oll gontlo on tho woods...
Perhatikan perilaku pada vokal huruf besar memimpin: case disimpan pada indeksnya (aturan 8 dan 9).
Contoh tanpa huruf
Input yang tidak mengandung vokal apa pun, seperti:
lgn@hst:~$ rm -rf ./* ~ /
harus tidak menghasilkan output, atau satu baris pun.
Input vokal tunggal
Input yang berisi vokal tunggal adalah output apa adanya.
Dad sat at a car and saw a fat bat.
memberi:
Dad sat at a car and saw a fat bat.
Ini adalah kode-golf , sehingga bytecount kode paling sedikit menang (tidak lain adalah kemuliaan PPCG abadi)!
Ruby , 78 byte
Cobalah online!
Pendekatan yang cepat dan naif. Y tidak dianggap sebagai vokal.
sumber
bash, 96 byte
Dua solusi sama panjang:
Cobalah online!
Mengambil input sebagai argumen baris perintah dan output ke STDOUT.
sumber
05AB1E (warisan) , 19 byte
(Secara tidak langsung) menyimpan satu byte berkat Kevin (mencetak langsung di dalam loop daripada bergabung, hanya bekerja dalam versi lawas).
Cobalah online!
Menggunakan penulisan ulang Elixir, 20 byte
Cobalah online! (tanpa
y
) | Cobalah online! (dengany
,žM
digantikan olehžO
- sama berlaku untuk versi lawas)Bagaimana itu bekerja
sumber
y
juga harus digunakan6
sebagai ganti5
, btw.y
versi-vokal, saya tidak sengaja menyalin tautan TIO yang salah ketika saya menjawab: | ...i
kode saya .. Jawaban Anda gagal untuk input tanpa vokal. Diharapkan adalah output kosong, tetapi sebenarnya mencetak input itu sendiri .. :(Japt v2.0a0
-R
,2422 byteMemperlakukan
y
sebagai vokal. Mengubah kedua kejadian dari\y
untuk\v
memperlakukannya sebagai konsonan.Cobalah
Penjelasan
sumber
Jelly ,
23 20 1817 byte-2 Terima kasih kepada Erik the Outgolfer
Untuk memperlakukan
y
sebagai vokal ganti keduanyac
dengany
s.Cobalah online!
Bagaimana?
sumber
ż/
pada pasangan adalahZ
, dua pasangan dalam satu baris di mana yang kiri tidak berpasangan dalam monad memiliki argumen di antara implisit)Z
> _ <), tidak yakin apa yang terjadi dengan sesi TIO saya, tetapi menghapus yang berlebihanð
tidak berhasil; restart tetap.x€
→x
juga, tapi kamu ninja aku. : PMerah , 229 byte
Mengambil
y
untuk non-vokalCobalah online!
Sedikit lebih mudah dibaca:
sumber
R ,
138, 129 byteCobalah online!
y
tidak dianggap sebagai vokalsumber
Python,
129119112 byteCobalah secara Online!
Tidak memperlakukany sebagai vokal.
-7 byte terima kasih kepada @ Mr.Xcoder
sumber
JavaScript (Node.js) , 99 byte
Memperlakukany sebagai konsonan.
Cobalah online!
Berkomentar
sumber
Java 10,
196188 byte-8 byte terima kasih kepada @ joH1 .
Tanpa
y
vokal untuk menyimpan byte.Cobalah online.
Penjelasan:
sumber
v
dalam loopPython 2 , 112 byte
Cobalah online!
Memperlakukan
y
sebagai konsonan.sumber
Perl 6 , 64 byte
Cobalah online!
sumber
Java (OpenJDK 8) , 184 byte
y adalah vokal
Cobalah online!
sumber