Diberikan string sebagai input, output string dengan algoritma berikut diterapkan:
1. Split the String by " " (find the words): "Hello World" -> ["Hello","World"]
2. Find the vowel count of each component: [2,1] ( ["H[e]ll[o]","W[o]rld"] )
3. For each of the components, output the first n letter where n is the number
of vowels it contains: ["He","W"]
4. Join the list to a single string and reverse it: "HeW" -> "WeH"
Spesifikasi
Anda dapat mengambil input dan memberikan output dengan bentuk standar apa pun , dan satu-satunya tipe data yang diizinkan untuk Input dan Output adalah tipe String asli bahasa Anda. Mengambil input langsung sebagai daftar kata-kata individual tidak diizinkan.
Anda dijamin tidak akan ada ruang berurutan.
Vokal adalah
"a","e","i","o","u","A","E","I","O","U"
, tetapi"y","Y"
tidak dianggap vokal .Anda dijamin hanya huruf dan spasi yang akan muncul di input, tetapi tanpa baris baru.
Keluaran harus peka huruf besar-kecil.
Anda tidak dijamin bahwa setiap kata berisi vokal. Jika tidak ada vokal yang muncul di kata itu, Anda tidak perlu mengeluarkan apa pun untuk itu.
Uji Kasus
Input -> Output
---------------
"" -> ""
"Hello World" -> "WeH"
"Waves" -> "aW"
"Programming Puzzles and Code Golf" -> "GoCauPorP"
"Yay Got it" -> "iGY"
"Thx for the feedback" -> "eeftf"
"Go Cat Print Pad" -> "PPCG"
"ICE CREAM" -> "RCCI"
Mencetak gol
Pengajuan terpendek yang valid untuk setiap bahasa menang, ini adalah kode-golf . Semoga berhasil dan selamat bersenang - senang!
Kotak pasir bagi mereka yang dapat melihat posting yang dihapus.
Jawaban:
Haskell, 59 byte
Cobalah online!
sumber
V , 31 byte
Cobalah online!
Dan penjelasannya:
sumber
æ
digunakan, saya sepertinya ingat itu sedang ditambahkan baru-baru ini dan itu salah satu perintah yang lebih berguna.æ
adalah sangat berguna. Saya harus menambahkannya sejak lama.ø
juga sangat bagus, itu keren karena jawaban ini menggunakan keduanya.|
( Coba online! ), Yang tidak ada dalam penjelasan Anda. Tapi saya tidak tahu V; Apakah itu dibutuhkan?<C-a>
meletakkan kursor di akhir kata). tio.run/##K/v//3Cvgv7hTVyHNx1uObzj8OLoxNTM/…Brachylog , 17 byte
Cobalah online!
Penjelasan
Itu adalah terjemahan langsung dari masalahnya:
sumber
Perl 6 , 57 byte
sumber
Alice , 32 byte
Cobalah online!
Penjelasan
Ini hanya kerangka kerja untuk kode linier dalam Ordinal (mode pemrosesan string). Membuka program, kita mendapatkan:
Inilah fungsinya:
sumber
JavaScript (ES6), 76 byte
Uji kasus
Tampilkan cuplikan kode
sumber
Perl 5, 47 byte
45 byte kode + 2 untuk
-pa
.Cobalah online!
sumber
JavaScript (ES6), 96 byte
Tampilkan cuplikan kode
sumber
Thx
) seharusnya tidak memiliki output; test case Anda menghasilkan keseluruhan kata.Pyth - 19 byte
Coba di sini
Penjelasan:
Saya dapat memiliki 18 byte jika bukan untuk string kosong:
sumber
@
- persimpangan jauh lebih baik daripada regex di sini. Oh, saya mengerti - Anda hanya memiliki satu lambda / peta dibandingkan dengan 2. sayaPyth, 31
Butuh waktu lama untuk menulis, dan saya merasa mungkin ada pendekatan yang lebih baik, tetapi inilah yang saya miliki:
Tes online .
sumber
jk
tipnya.Ohm, 13 byte
Penjelasan
z
.:
) dengan itu terkait kode kunciαv_K_σh
.av
mendorongaeiou
_
mendorong elemen iterated saat iniK
menghitung kejadianaeiou
di_
_
elemen lagiσh
Pisahkan elemen menjadi irisan panjangoccurences
dan ambil elemen pertama.occurences
karakter pertama0J
Dorong tumpukan bergabung''
0
perlu karena membutuhkan argumen yang akan digabung. Jika argumen itu bukan array, ia bergabung dengan stackR
membalikkan hasilnyasumber
Ruby ,
5459 + 1 =5560 byteMenggunakan
-p
bendera untuk +1 byte.Cobalah online!
sumber
-p
bernilai satu byte?ruby -pe '...'
hanya satu byte lebih dariruby -e '...'
dan-e
merupakan cara yang valid untuk mengeksekusi skrip.Japt v2.0a0,
1210 byteCobalah
Penjelasan
Cukup banyak persis apa yang dijelaskan spec!
sumber
"%v"
menjadi\v
(sebuah kelas tunggal regex literal, setara dengan/\v/
). Belum membantu, tentu saja, karena saya belum mengimplementasikan v2.0;)Jelly , 12 byte
Cobalah online!
sumber
05AB1E , 14 byte
Cobalah online!
Darn 05AB1E tidak ada bawaan untuk AEIOUaeiou ಠ_ಠ
sumber
#RʒDlžMÃg£R?
untuk 12, Anda dapat cukup banyak hanya mengurangi dupe menghapus kebutuhanAEIOUaeiou
. Juga, mengapa sih ini tidak bekerja tanpa?
? Bisakah Anda memposting penjelasan, saya tidak terbiasa denganʒ
Mathematica, 145 byte
sumber
s[[i]]],
dan{i,Length@s}
dihapus?"aeiouAEIOU".ToCharArray()
?Retina ,
4946 byteCobalah online! Tautan termasuk test suite. Penjelasan: Ini adalah aplikasi dari kelompok penyeimbang .NET. Lookahead mencari kata untuk vokal, yang ditangkap dalam grup 2. Grup kemudian muncul saat setiap huruf dicocokkan, sehingga menangkap jumlah huruf yang sama dengan jumlah vokal dalam kata. Sisa kata dan spasi tambahan apa pun kemudian diabaikan sehingga prosesnya dapat dimulai lagi dengan kata berikutnya. Akhirnya surat-surat yang tersisa dibalik.
sumber
C # (.NET Core) , 144 byte
Cobalah online!
Bagian terburuknya adalah membalikkan a
string
di C # mengembalikanIEnumerable<char>
yang harus Anda konversi kembali menjadi astring
.sumber
PHP , 96 byte
Cobalah online!
sumber
Python 3 ,
83817977 byteCobalah online!
sumber
()
untuk mencetakraw_input()
bukannyainput()
yang akan menyia-nyiakan 4 byte.Java 8 ,
171151 byte-20 byte berkat @Lukas Rotter
Saya merasa masih perlu bermain golf ... beri tahu saya di komentar jika Anda punya saran.
Cobalah online!
sumber
(?i)
untuk mengabaikan case di regexs. Begitu(?i)[aeiou]
juga harus bekerja.{}
tanda kurung for, karena hanya satu pernyataan yang terkandung di dalamnya.^
untuk menemukan jumlah vokal:z+=w.substring(0,w.replaceAll("(?i)[^aeiou]","").length());
k, 33 byte
Cobalah online!
sumber
Common Lisp, 218 byte
Penjelasan
sumber
sed, 133 (132 +1) byte
sed disebut dengan
-E
flag, yang tampaknya berarti saya menambahkan satu byte.Catatan: Saya belum benar-benar mencoba golf ini.
Cobalah online!
sumber
Clojure,
9694 byteYah panjang ini cukup konyol.
mapcat
menyimpan dua byte.sumber
Cepat 3, 240 byte
Ini adalah fungsi yang bisa digunakan
f(s:"Input")
. Anehnya, saya tidak berpikir itu bisa bermain golf lebih lanjut:Cobalah di IBM Sandbox!
sumber