Saat ini ada meme di internet yang terdiri dari mengambil kalimat, membalikkan makna dan menambahkan n't
di akhir. Misalnya, I am small
menjadiI am talln't
Tantangan
Demi tantangan, kami akan menyederhanakan ini: Tugas Anda adalah untuk mendeteksi setiap kali ada negasi dalam kalimat, dan menggantinya dengan yang 'positif' dengan n't
menambahkan di akhir. Akan ada beberapa bagian rumit yang akan dijelaskan dalam aturan.
Aturan
- Anda harus mengambil sebuah String sebagai input , dan mengembalikan sebuah String sebagai output .
- Input akan berupa kalimat dalam huruf kecil , hanya dengan
.
dan,
sebagai tanda baca. - Anda harus mengganti
no <any_word>
ataunot <any_word>
dengan<any_word>n't
. no
Sayanot
harus menjadi kata dan bukan substring: Anda tidak perlu mengubah apa pun dinone of those
- Jika kata sudah selesai dengan a
n
, Anda harus menggantin't
dengan't
:no plan
menjadiplan't
dan tidakplann't
- Ketika
no
ataunot
tidak diikuti oleh kata apa pun, tanda baca atau yang lainno
/not
, Anda harus menggantinya denganyesn't
. - kata majemuk dihitung sebagai satu kata. jadi meskipun
no-op
mengandung substringno
, itu tidak mengandung kata no. Jadi hasilnya akanno-op
dan tidak-opn't
. - Anda tidak perlu khawatir tentang kesalahan tata bahasa. Misalnya,
there is no way
akan menghasilkanthere is wayn't
. - Tidak ada celah standar yang diizinkan.
- Ini codegolf , jadi kode terpendek menang.
Ada beberapa contoh, bahkan jika tantangan ini terlihat jelas bukan untuk saat ini.
Contohnya
Input: Saya suka codegolfing, tetapi saya tidak suka program pendek. apakah kalimat ini masuk akal ... tentu saja tidak.
Keluaran: Saya suka codegolfing, tetapi saya tidak suka program pendek. apakah kalimat ini masuk akal ... tentu saja tidak.Input : Anda tidak diundang. keluar.
Keluaran : Anda diundang bukan. keluar.Input : saya tidak baik-baik saja, saya tidak punya rencana dan saya tidak punya gunn
Output : saya tidak baik-baik saja, saya tidak punya apa-apaInput : oh tidak, tidak, tidak saya tolak.
Keluaran : oh ya tidak ya tidak menolak.Input : oh tidak tidak tidak, saya menolak.
Keluaran : oh ya tidak ya tidak ya tidak, saya menolak.Input : saya tidak percaya ini, Anda tidak bisa codegolf.
Keluaran : saya tidak percaya ini, Anda tidak bisa codegolf.Input : oh tidak ... dia melakukannya lagi.
Output : oh ya tidak ... dia melakukannya lagi.Masukan : bukan bukan kata, kevin. jadi ini bukan bukan.
Keluaran : bukan, bukan kata, kevin. jadi ini bukan.Input : apakah tidak jelas untuk semua orang
Keluaran : apakah ini jelas untuk semua orang?Input : ini tidak masuk akal ...
Output : ini tidak masuk akal ...
I am small
menjadiI am bign't
?no n
menghasilkannn't
ataun't
?no n
dapat mengakibatkann't
karena 'kata'n
diakhiri dengan an
.Jawaban:
Retina ,
867065 byte-16 byte terima kasih kepada @Neil .
-5 byte terima kasih kepada @ovs .
Cobalah online.
Penjelasan:
sumber
L
di sini adalah singkatan untukA-Z
, menghemat 2 byte lebihT`-'`AB
dan sebaliknya.Python 2 ,
208123113146 byteCobalah online!
Kehilangan banyak byte karena kata-kata yang berakhiran
n't
ataun
. Baik atau lebih pendek, tetapi menangani keduanya lebih lama.sumber
JavaScript (Node.js) , 95 byte
Cobalah online!
Terima kasih kepada Rick Hitchcock untuk 2 byte
sumber
Stax ,
757350 byteJalankan dan debug itu
sumber
Japt , 72 byte
Cobalah online!
sumber
"yes-no maybe-so"
, itu menghasilkan"yes - mayben't - so"
.Java 8,
163136 byte-27 byte dengan membuat port jawaban 's Stax' @recursive .
Cobalah online.
sumber