Objective Diberikan input teks yang tidak mengandung karakter [
atau ]
, melakukan tindakan berikut:
- Untuk setiap instance
Amen
dengan setidaknya satu huruf kapital (jadi semua instanceAmen
mengecualikanamen
), output yang samaAmen
(mempertahankan kapitalisasi). - Untuk setiap instance dari
/all the people said[?: ]/i
(itu adalah Ekspresi Reguler), juga outputAmen
(kasus apa pun baik-baik saja.)
Setelah setiap output, Anda dapat memilih pemisah yang konstan , misalnya baris baru, spasi, atau tidak sama sekali.
Ini adalah kode-golf , sehingga program terpendek dalam byte menang.
Contoh IO
Input: I said AMEN! AMEN, PEOPLE!
Output: AMENAMEN ; any separator is fine, I choose none.
Input: amen amen amen amen
Output: ; nothing
Input: ; empty
Output: ; nothing
Input: *blah blah blah* And all the people said?
Output: Amen
Input: all the people said:
Output: Amen
Input: AMEN AMeN AmeN aMEN amen AmEn
Output: AMEN AMeN AmeN aMEN AmEn
Input: All the people said Amen! And all the people said AMEN!
Output: Amen Amen Amen AMEN
Input: LAMEN! Amen.
Output: AMEN Amen
Input: AmenAmenAmenAmenAMENamen
Output: Amen Amen Amen Amen AMEN
Input: And he was like, "Amen", then we were all like, "Amen, bruh."
Output: Amen Amen
Input: And all the aMen people said.
Output: aMen
Bonus
- -20 byte jika Anda bisa "ambil" tanda baca yang mengikuti
Amen
, yaitu,Amen! => Amen!
,AmEN. => AmEN.
,I said Amen, bruh. => Amen,
, danAMEN!!!! => AMEN!!!!
.!
adalah satu-satunya karakter yang harus dilestarikan beberapa kali..?!,
adalah satu-satunya karakter yang harus dipertahankan. - -40 byte jika, ada turunan dari
amen
, output,Heresy! at index [i]
bukan apa-apa, di mana[i]
indeks kata yang menyinggung yaituamen
.
IOs bonus
Input dan output dalam bentuk input => output
. (Pemisah di sini adalah spasi.)
BONUS 1
Can I get an Amen! => Amen!
AMEN! and AMEN! and a final Amen... => AMEN! AMEN! Amen.
Amen? Amen, and amEn! => Amen? Amen, amEn!
BONUS 2
The man sighed and said, "amen," and left. It's AMEN! => Heresy! at index [26] AMEN!
Papan peringkat
Berikut ini adalah Stack Snippet untuk menghasilkan leaderboard biasa dan gambaran umum pemenang berdasarkan bahasa.
Untuk memastikan bahwa jawaban Anda muncul, silakan mulai jawaban Anda dengan tajuk utama, menggunakan templat Penurunan harga berikut:
# Language Name, N bytes
di mana N
ukuran kiriman Anda. Jika Anda meningkatkan skor Anda, Anda dapat menyimpan skor lama di headline, dengan mencoretnya. Contohnya:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Jika Anda ingin memasukkan beberapa angka dalam tajuk Anda (mis. Karena skor Anda adalah jumlah dari dua file atau Anda ingin membuat daftar hukuman penterjemah secara terpisah), pastikan bahwa skor sebenarnya adalah angka terakhir di tajuk:
# Perl, 43 + 2 (-p flag) = 45 bytes
Anda juga dapat membuat tautan nama bahasa yang kemudian akan muncul di cuplikan papan peringkat:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
sumber
amen
harus dalam urutan?a
masukamen
. Misalnya,G amen => 2
jika bahasa Anda diindeks nol; 3 jika diindeks satu.AMEN!!!! => AMEN!!!!
dan belumand a final Amen... => Amen.
?Jawaban:
Retina , 37 byte
Kode panjangnya 57 byte dan memenuhi syarat untuk bonus -20 byte . Cobalah online!
Terima kasih kepada @ MartinBüttner karena porting jawaban Perl saya ke Retina!
Bagaimana itu bekerja
sumber
([.,?]|!*)
pola kecocokan tanda baca untuk jawaban saya? Saya melihatnya dan tidak bisa melihatnya (dan saya pasti tidak bisa menemukan solusi yang lebih baik!). Ini tentu saja tidak akan mengalahkan milik Anda :), tapi saya tidak ingin menjiplak, dan saya tidak sepenuhnya yakin dengan etiket untuk meminjam solusi untuk sub-masalah seperti ini.VBA, 193 byte
Tanpa Pemisahan, Tanpa Regex, Tanpa Bonus. Punya versi yang mendapat kedua Bonus tetapi JAUH lebih lama.
sumber
for i=1 to
kefor i=1To
Perl, 51 byte
Kode sumber yang sebenarnya berisi 70 byte , harus dijalankan dengan
perl -nE
( +1 byte ), dan memenuhi syarat untuk bonus -20 byte .sumber
Python 2, 155 byte
Contoh
sumber
JavaScript, 88 byte
108 byte - 20 byte (menangkap tanda baca)
sumber
Amen?!.
untuk inputAmen?!.
, danAmen!
untuk inputAmen!!!
.grep dan sed,
85838477 - 20 = 57 bytesumber
Amen?
untuk inputall the people said??
. Solusi terbaik yang bisa saya temukan adalah mengganti string denganAmenx
.amen.
untuk inputamen.
. Memperbaiki ini akan mempersingkat jawaban Anda: ubah sajagrep -v '^[amen]*$'
menjadigrep \[AMEN]
.Perl, 103 - 60 = 43 byte
Menghitung shebang sebagai satu, input diambil dari stdin. Pertahankan tanda baca untuk -20 byte, dan identifikasi bid'ah untuk -40 .
Contoh Penggunaan
Perl, 70 - 20 = 50 byte
Menghitung shebang sebagai satu, input diambil dari stdin. Pertahankan tanda baca untuk -20 byte.
Contoh Penggunaan
sumber
ha]
. (Nevermind, baru saja melihat komentar OP bahwa input tidak dapat mengandung tanda kurung ... pertanyaan ini telah berubah berkali-kali sehingga saya tidak dapat melacak.)𝔼𝕊𝕄𝕚𝕟, 66 - 20 = 46 karakter / 80 - 20 = 60 byte
Cobalah di sini - Hanya Firefox.
Pertama kali di sini di PPCGSE. Semoga golf ini cukup bagus.
EDIT: Sebenarnya, saya mengalahkan CJam (dalam hitungan char), jadi itu cukup bagus!
sumber
CJam, 57 byte
Kode panjangnya 97 byte dan memenuhi syarat untuk bonus -40 byte .
Cobalah online di penerjemah CJam .
sumber
JavaScript, 100 byte
sumber
x=prompt();
dan Anda juga dapat menggunakanalert(prompt().replace(...).replace(...).match)
JavaScript,
136135 - 40 - 20 = 75 bytePenjelasan:
Kode ini digerakkan oleh regex tiga bagian yang mengumpan hasil ke
replace
panggilan balik . Bagian-bagiannya adalah:all the people said[?: ]
- cukup cocok denganall the people said
pola yang diperlukan(amen)([.,?]|!*)
- cocok dengan huruf besar-kecilamen
dan tanda baca (salah satu.,?
atau nol atau lebih!
, yang menjadikan tanda baca opsional) menjadi grup yang cocok - berikan kredit kepada Dennis untuk pola tanda baca.
- Cocok dengan karakter lain, bukan bagian dari pola di atas, satu pada saat ituOleh karena itu, kecocokan apa pun harus berupa string semua-orang, kecocokan Amin dengan tanda baca opsional, atau karakter tunggal yang bukan bagian dari salah satu dari frasa tersebut. Kami menggunakan logika dalam callback replacer untuk menyimpan dan mengganti bagian string yang sesuai, dan mengubah setiap karakter lain menjadi string kosong.
sumber
Python 2, 191 - 40 = 151 byte
Tanpa regex, dan Bonus 2
sumber