Memasukkan
Sederetan karakter ASCII yang dapat dicetak, misalnya:
This is an example string.
Keluaran
Untuk setiap konsonan ( BCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz
) yang tidak diikuti oleh vokal ( AEIOUaeiou
) tambahkan vokal terakhir sebelum itu, dalam huruf kecil.
Konsonan sebelum vokal pertama dibiarkan apa adanya :
Thisi isi ana examapale seterinigi.
Uji kasus
AN EXAMPLE WITH A LOT UPPERCASE (plus some lowercase)
=> ANa EXAMaPaLE WITiHi A LOTo UPuPEReCASE (pelusu some lowerecase)
And here comes a **TEST** case with 10% symbols/numbers(#)!
=> Anada here comese a **TESeTe** case witihi 10% siyimiboloso/numuberese(#)!
This is an example string.
=> Thisi isi ana examapale seterinigi.
abcdefghijklmnopqrstuvwxyz
=> abacadefegehijikiliminopoqorosotuvuwuxuyuzu
A pnm bnn
=> A panama banana
Tell me if you need more test cases!
=> Telele me ifi you neede more tesete casese!
Mencetak gol
Karena ini adalah kode-golf , jawaban dengan byte-count terendah di setiap bahasa menang (tidak ada jawaban yang diterima).
A pnm bnn
!Jawaban:
Retina , 48 byte
Cobalah online! Penjelasan: Lookahead mencari titik yang tidak diikuti oleh vokal, sedangkan lookbehind mencari konsonan yang sebelumnya mendahului dan vokal sebelumnya, yang kemudian dimasukkan dalam huruf kecil.
sumber
JavaScript (ES6),
108105 byte(Disimpan 3 byte berkat @Shaggy.)
Mencari vokal atau konsonan tanpa vokal berikut:
(Kami tidak perlu mencari konsonan secara eksplisit, karena vokal dikecualikan berdasarkan
/[aeiou]|...
.)Vokal disimpan
v
, dan konsonan tanpa vokal berikut telahv
dimasukkan:(Jika
r[1]
ada, kami telah mencocokkan dengan konsonan plus non-vokal.)Jika tidak ada yang berubah, kami mengembalikan input. Kalau tidak, kita kambuh pada string yang diganti.
Tampilkan cuplikan kode
sumber
s=>s.replace(/[aeiou][^a-z]*([a-z](?![aeiou]))+/gi,s=>s.replace(/(?!^)./g,a=>a+s[0].toLowerCase()))
Sepertinya saya tidak dapat memiliki masalah dengan urutan non-huruf(s+=' ')
harus menyimpan beberapa byte.Python 2 ,
134119 byteCobalah online!
EDIT: 15 byte thx ke Lynn
sumber
<vowels>.count
.Standar ML ,
225223 byteCobalah online!
Kurang bermain golf:
Cobalah online!
sumber
it
dan penggunaan$
nama variabel.it
juga, tetapi belum sempat melakukannya.sed 4.2.2 , 64 bytes
Cobalah online!
sumber
Perl 5,
686759 byteIni adalah contoh yang bagus tentang kegunaan dari
\K
, dan saya tidak percaya saya tidak tahu tentang fitur ini sebelum Dom Hastings menunjukkannya.Saya belum bisa mendapatkan perilaku yang benar hanya dengan menggunakan
s///g
, jadi loop yang sebenarnya tampaknya perlu. (Mungkin saja bahwa penggunaan pernyataan balik yang tepat dapat bekerja tanpa eksplisitwhile
- tetapi saya belum menemukannya.)sumber
[aeiou])
faktor ke variabel: Cobalah online!JavaScript ES6, 115 byte
Menghemat 8 byte berkat @ETHProductions
Saya telah berhasil mengembang ini lebih dalam proses golf itu O_o tetapi juga memperbaiki bug
sumber
JavaScript,
8882 BytesSelesai dengan satu ekspresi reguler:
Versi Asli (88 Bytes):
Versi Diperbarui (82 Bytes) setelah melihat ekspresi reguler Neil :
sumber
Japt
-P
, 28 byteCobalah online!
Dibongkar & Cara kerjanya
The
ó
Fungsi menang atas segala jenis regexes.sumber
JavaScript (Node.js) ,
146143132127125 byteCobalah online!
sumber
Perl 6 ,
75 73 7169 byteCobalah
Cobalah
Cobalah
Cobalah
Diperluas:
sumber
Python 3 , 125 byte
Cobalah online!
Python 3.6 memungkinkan kita untuk (ab) menggunakan f-string untuk menggunakan kembali set vokal kita (dan untuk empat karakter yang disimpan, awal kelas karakter regex terbalik) dengan murah (
f
awalan pada setiap string, kemudian{v}
sesuai kebutuhan, alih-alih'+v+'
Anda akan perlu dengan penggabungan, atau[^aeiouAEIOU
Anda akan menyisipkan secara harfiah.Regex yang tidak cocok dengan karakter, hanya posisi, menghindari masalah dengan pertandingan non-tumpang tindih yang dibutuhkan regex normal, dan menghilangkan kebutuhan untuk mereferensi setiap bagian dari pertandingan; semua yang kita gunakan objek pencocokan adalah untuk mendapatkan indeks slice yang kita gunakan untuk menemukan vokal sebelumnya.
Sebagian de-golf, itu akan menjadi seperti:
sumber
TSQL, 500 byte
Tabel
i
digunakan untuk inputsumber
SWI-Prolog, 593 byte
Hanya digunakan predikat bawaan (tanpa regex atau pustaka manipulasi daftar).
Pemakaian:
sumber
Haskell ,
142130 byteCobalah online!
Inisial
""&
adalah aplikasi parsial dari(&)
fungsi yang didefinisikan kemudian, dan ditempatkan sangat aneh untuk membuat TIO menghitung byte""&
, tetapi tidak menghitung byte yang, dalam program penuh, akan diperlukan untuk menetapkannya ke nilai apa pun yang disebutkan.Kurang bermain golf:
Seharusnya ada cara untuk melakukan ini lebih ringkas dengan lipatan alih-alih rekursi, tetapi saya tidak bisa mengetahuinya.
sumber
f
tidak menarik di tubuh: Cobalah secara online!v = (
dan Anda dapat mendefinisikang
sebagai operator infiks .g _""=""
pada posisi terakhir menghemat satu byte:g _ x=x
(dua byte jika Anda beralih ke infiks seperti yang disarankan Laikoni).""&
untuk membuatnya berfungsi.05AB1E , 34 byte
Cobalah online!
Saya mengambil kembali, saya hanya bisa mencukur 3 byte dari keburukan ini ... Saya pikir saya bisa mencukur boolean, tetapi harus ada 3 kasing. 1 untuk vokal. 1 untuk konsonan. 1 untuk huruf digit / simbol ada.
sumber
Powershell, 104 byte
berdasarkan ekspresi reguler Neil .
simpan sebagai
get-rememebere.ps1
. Script untuk pengujian:sumber
$t
. Posting meta yang relevan: codegolf.meta.stackexchange.com/a/8731/78123Merah , 276 byte
Cobalah online!
Dapat dibaca:
sumber
Yabasic , 180 byte
Program lengkap yang mengambil input dari STDIN dan output ke STDOUT
Cobalah online!
sumber