Pendahuluan:
Tantangan ini berbeda dari "program kucing lain".
Ada banyak sekali tikungan yang berbeda, mengapa saya tidak bisa memiliki sendiri, kawan?
Hal-hal unik:
- Itu tidak membaca input langsung ke output.
- Itu memanipulasi string dengan cara yang pasti bukan kucing langsung.
Tantangan:
Diberikan 3 input (atau satu input, pisahkan sesuka Anda) dapatkan tiga objek (kata-kata) yang akan kami ganti dengan pena, nanas, dan apel dalam lirik dan output.
Format output ( sesuai dengan lirik yang ditemukan di AZLyrics ):
Dengan asumsi (ganti nilai dengan tanda kurung dengan ini):
- A, B, C dengan kata-kata masukan (mis.
apple
) - UA, UB, UC dengan kata input dengan huruf besar pertama (jika belum huruf besar) (mis.
Apple
) - FUA, FUB, FUC masing-masing dengan huruf besar pertama: (mis.
A
) - a / an dengan artikel masing-masing dengan huruf vokal / konsonan pertama (mis.
an
)
[FUA] - [FUB] - [FUC] - [FUA] Saya punya [a / an] [A], saya punya [a / an] [C]. Uh! [UC] - [UA]! Saya punya [a / an] [A], saya punya [a / an] [B]. Uh! [UB] - [UA]! [UC] - [UA], [UB] - [UA]. Uh! [UA] - [UB] - [UC] - [UA]. [UA] - [UB] - [UC] - [UA]!
Kasus cobaan:
Uji dengan pen
, pineapple
dan apple
:
P-P-A-P
I have a pen, I have an apple.
Uh! Apple-Pen!
I have a pen, I have a pineapple.
Uh! Pineapple-Pen!
Apple-Pen, Pineapple-Pen.
Uh! Pen-Pineapple-Apple-Pen.
Pen-Pineapple-Apple-Pen!
Aturan:
- Jika input tidak dimulai dengan huruf, anggap konsonan (
a
) dan huruf besar pertama karakter pertama (mis.123 -> 1
). - golf kode , jumlah karakter terendah yang menang!
Jawaban:
JavaScript (ES6),
217...187183 byteMengambil input sebagai array dari 3 string, seperti
['pen', 'pineapple', 'apple']
.Contohnya
Tampilkan cuplikan kode
sumber
'golf', 'puzzle', 'code'
IMHOPerl 6 , 165 byte
Menggunakan pendekatan yang sama dengan jawaban JS Arnauld .
sumber
Batch,
494490 bytePenjelasan:
:h
subrutin menangani garisI have a %, I have a %.
The%
s diganti dari argumen baris perintah yang sesuai, dan kemudian stringa a
,a e
,a i
,a o
dana u
adalah mengganti dengan setaraan
versi. The:u
subroutine menangani jalur lain; dibutuhkan kata-kata parameter, dan huruf besar semua huruf pertama. (Ruang tambahan diawali untuk memungkinkan kata pertama menjadi huruf besar, tetapi dihapus pada output.) Untuk menangani kata setelah-
s, spasi ekstra dilewati, tetapi mereka juga dihapus pada output. The:u
subroutine juga digunakan untuk baris pertama, meskipun penggalian inisial canggung.sumber
Python 3.6 -
351287286 byteTidak ada yang mewah di sini kecuali memanfaatkan fitur baru pemformatan string literal.
Catatan - Versi ini adalah
3.6
tempat pemformatan string literal diperkenalkan . Karenanya, ini tidak akan berfungsi di versi sebelumnya.sumber
"
hanya akan menghemat 2 byte, tetapi\n
akan menambah 12 byte.Lua,
615607 byteDisimpan 8 byte berkat [pengguna anonim]
Wah, panjang. Coba di sini.
Saya 100% yakin ini bisa dipersingkat. Saya hanya malas ..
Pada dasarnya banyak menggunakan manipulasi string. Ada 3 fungsi utama dan satu variabel:
d(string)
: mengembalikan sebuah jika string adalah vowel (AEIOUaeiou
), yang lain mengembalikan az(string)
: mengembalikan huruf pertama dalam huruf besarz(s) .. s:sub(2)
: mengembalikan seluruh kata, tetapi huruf besar pertamaf
: kata akhir (dalam variabel, untuk menyimpan beberapa byte). Dalam kasus uji Anda, itu akan menjadiPen-Pineapple-Apple-Pen
.Input:
pen
,pineapple
,apple
Keluaran:
sumber
Python 2 , 283 byte
Cobalah online!
sumber