Catatan: judul itu salah eja secara sengaja.
Diberikan string s, swap aliran vokal pertama dari setiap 2 kata. Untuk tantangan ini, Anda dianggap sebagai vokal.
Misalnya, diberi masukan "hari yang menyenangkan":
1. Input: "great day sir"
2. Identify pairs of words: "[great day] [sir]" (No word for sir to pair with)
3. Identify the first vowel runs in each word: "[gr[ea]t d[ay]] [s[i]r]"
4. Swap the vowel runs in each pair: "[gr[ay]t d[ea]] [s[i]r]"
5. Return/print: "grayt dea sir"
Ketika ada aliran vokal dengan panjang berbeda, Anda masih menukar seluruh aliran. Ketika sebuah kata memiliki lebih dari satu vokal berjalan, Anda masih hanya menukar yang pertama. Ketika kata pertama atau kedua dari sepasang kata tidak memiliki vokal, maka Anda tidak menukar vokal dengan kata-kata itu.
Anda dapat mengasumsikan bahwa input hanya terdiri dari satu huruf alfabet dan spasi literal atau pembatas konstan lainnya.
Metode standar I / O, celah standar berlaku. Whatevers terkemuka / tertinggal tidak apa-apa.
Kasus uji:
Input -> Output
"great day sir" -> "grayt dea sir"
"ppcg is the best" -> "ppcg is the best" (When there is no vowel to swap, don't swap vowels."
"this is a test case" -> "this is e tast case"
"loooooooooooooong word" -> "long woooooooooooooord"
"great night" -> "grit neaght"
"anything goes" -> "oenything gas"
"qwrtpsdfghjklzxcvbnm aaaaaaaa hi there" -> "qwrtpsdfghjklzxcvbnm aaaaaaaa he thire"
"this is a long test case in case you could not tell" -> "this is o lang tast cese an cise ou cyould net toll"
ppcg is awesome
menjadippcg is awesome
atauppcg as iwesome
?this is a long test case in case you could not tell
harusthis is o lang tast cese an cise ou cyould net toll
, karena vokal berjalanyou
danou
akan ditukar.Jawaban:
V ,
42, 41 byteCobalah online!
Hexdump:
Penjelasan:
Ini akan menempatkan semua grup dari dua kata pada baris mereka sendiri, misalnya:
Sekarang kita menjalankan beberapa sihir regex mewah:
sumber
Japt ,
3937 byteMereka mengatakan itu akan jelek, tetapi saya tidak mendengarkan ... dan itu adalah:
Uji secara online!
Penjelasan
sumber
JavaScript (ES6),
6210698101 byteTampilkan cuplikan kode
sumber
Retina , 65 byte
Cobalah online! Termasuk kasus uji. Saya ingin menggunakan referensi grup bersyarat tetapi saya tidak bisa membuatnya bekerja dalam 66 byte apalagi 65 atau kurang.
sumber
Retina , 50 byte
Cobalah online!
−2 byte terima kasih kepada Martin.
¶
adalah baris baru). Ini memungkinkan kami untuk menggunakan.*
sepasang kata.sumber
[aeiouy]+
tetapi tidak bisa mendapatkan sesuatu yang ekonomis.[aeiouy]
duplikasi itu, tetapi saya tidak bisa menghentikannya. Saya pikir ini mungkin bekerja dengan baik dengan saran Anda: tio.run/…Python 2 , 148 byte
Cobalah online!
Golf Code semakin membuat ketagihan!
sumber
Haskell ,
177173171169 byteCobalah online!
Ini adalah pemendekan langsung dari solusi naif berikut, jadi harus ada sesuatu yang jauh lebih baik di sini:
sumber
Java (OpenJDK 8) ,
363304 + 25 byte-34 byte terima kasih kepada @KevinCruijssen
Golf:
Cobalah online!
Tidak Disatukan:
sumber
(l)->
kel->
). Anda dapat menambahimport java.util.regex.*;
ke byte-count, dan menghapus semua yang lainjava.util.regex.
. Anda dapat menghapus tanda kurung di regex ("([aeiouy]+)"
->"[aeiouy]+"
). Dan Anda dapat mengubahString[]s=l.split(" ");
keString s[]=l.split(" "),a,b;
, maka Anda dapat menghapus bagianString
dalam for-loop; Dan Anda bisa berubahString.join(" ",s);
menjadil.join(" ",s);
. Ini semua digabungkan. [ 329 bytes ]Perl, 58 byte
57 byte kode +1 untuk
-p
.-2 byte terima kasih kepada @Dada !
Cobalah online!
sumber
?
dan menyimpan([aeiouy]+)
dalam variabel: Cobalah secara online!Ruby, 87 + 1 = 88 byte
Menggunakan
-p
bendera.Cobalah online!
sumber
Python 3 ,
198196192 byteif(m and n)
hingga jika m dan n & menghapus r yang tidak diinginkan untuk string regex, indeks saya mulai dari 1 bukannya 0Cobalah online!
sumber
i+1<len(a)
kei<=len(a)
, dan yang ketiga dengan mengubahif(m and n)
keif m and n
.i+1<len(a)
tidak dapat diubah kei<=len(a)
atau kalau tidak itu akan mencoba untuk mengevaluasia[j]
yaitua[i+1]
untuki=len(a)
dan menyebabkanindex out of range
kesalahan:i<len(a)+1
, wah!