Tantangan ini diinspirasi oleh meme Men of Culture .
Meme itu melibatkan pengosongan bagian dari teks aslinya,
Ah, saya melihat Anda seorang pria budaya juga.
untuk membuatnya tampak seolah-olah karakter mengatakan sesuatu yang lain.
Tantangan Anda adalah menulis sebuah program yang, jika diberi input, menunjukkan bagaimana kalimat aslinya dapat dihapus untuk mencapai string input.
Aturan:
- Gunakan
-
karakter untuk mewakili karakter kosong. - Anda tidak harus menambahkan huruf tambahan untuk mencapai string input
- Anda dapat memperlakukan perbandingan string sebagai tidak peka huruf besar-kecil
- Anda dapat mengabaikan spasi putih dalam perbandingan string
- Jika tidak ada substitusi yang mungkin, hasilkan nilai palsu.
- Anda dapat mengganti spasi putih berlebihan dengan
-
juga, meskipun tidak diperlukan. - Jika beberapa solusi dimungkinkan, Anda dapat mengeluarkan salah satu dari mereka.
Kasus uji:
Dasar:
Ah, I see you're a well.
> Ah, I see you're a --- -- ------- -- well.
Ah, I see well.
> Ah, I see ------ - --- -- ------- -- well.
Kasus tepi 1:
What did you just say about me, you little
> false
Tepi kasus 2 (diedit):
*no input*
> --- - --- ------ - --- -- ------- -- -----
Menengah:
Ah, I see you're Orwell.
> Ah, I see you're - --- o- -----r- -- well.
Ah, ymca.
> Ah, - --- y----- - m-- -- c------ a- ----.
Ah, a manual.
> Ah, - --- ------ a man -- -u----- a- --l-.
OR: > Ah, - --- ------ a man -- -u----- a- ---l.
Lebih keras:
tea.
> --- - --- ------ - --- -- ---t--e a- ----.
eeeee
> --- - -ee -----e - --- -- ------e -- -e---
TL; DR: Diberikan string input, output string yang mewakili bagaimana string asli harus dimodifikasi agar sesuai dengan string input, dengan menggunakan "-" untuk mewakili karakter kosong. Jika substitusi tidak memungkinkan, hasilkan nilai palsu.
Golf kode, jadi kode terpendek dalam byte menang.
Edit: Klarifikasi
Abaikan spasi putih dalam perbandingan string berarti Anda dapat menghapus spasi putih sebelum Anda membandingkan string. Misalnya, input
Ah, a manual
danAh , a manual
diperlakukan sama. Tanda baca lain, ' .
harus dipertahankan. Demikian pula untuk output,Ah, a manual
sama denganAh, amanual
.spasi putih pengganti mengacu pada ruang yang ada dalam teks asli. Anda tidak perlu menggantinya dengan "-", tetapi jika mengganti jaring Anda lebih banyak poin, silakan.
"Ah,<5 SPACES HERE>a manual."
dihasilkan?Jawaban:
> <> , 94 byte
Cobalah online!
Peka huruf besar-kecil, tidak mengabaikan spasi putih atau tanda baca dan menghasilkan string kosong jika input tidak valid. Jika Anda ingin mencoba string lain, Anda bisa memodifikasi baris pertama setelah
"v
, asalkan tidak mengandung a"
atau byte nol.sumber
Retina 0.8.2 , 117 byte
Cobalah online! Bisa menghemat 1 byte dengan membutuhkan case-sensitivitas. Dapat menghemat 3 byte dengan mengembalikan
--, - --- ---'-- - --- -- ------- -- ----.
input kosong. Penjelasan:Tambahkan teks yang diinginkan ke input.
Pindahkan sebanyak mungkin karakter dari teks yang diinginkan ke hasil. Jika karakter adalah huruf maka itu juga harus cocok dengan huruf berikutnya di input, yang kemudian dihapus.
Jika tidak ada huruf yang cocok dalam input, ubah ke a
-
dan coba lagi.Jika masih ada huruf yang tersisa di input, hapus semuanya, atau hapus sisa input.
sumber
Jelly ,
58554845 byteCobalah online!
Versi yang lebih mudah dibaca:
Rincian kompresi string:
sumber
Python 2 ,
126114 byteCobalah online!
Python 2 ,
108106 byteInput adalah daftar karakter.
Cobalah online!
sumber
(i=='')
bisa(i<' ')
(menggunakan tab, karakter terendah yang dapat dicetak)?JavaScript (Node.js) ,
122120 byteCobalah online!
Penjelasan:
Dapat dikurangi lebih jauh tetapi mengganti spasi putih dengan '-' juga. Jika ini dapat diterima maka
JavaScript (Node.js) , 112 byte
Cobalah online!
Mengurangi lebih jauh, hanya mengganti spasi putih setelah string yang diberikan dengan '-'.
JavaScript (Node.js) , 105 byte
Cobalah online!
sumber
What did you just say about me, you little
What did you just say about me, you little
test case. Program Anda menghasilkan--- - --- ------ - --- -- ------- -- w----
sebagai output yang bukan apa yang dibutuhkan oleh spesifikasi tantangan.JavaScript (Node.js) , 135 byte
Cobalah online!
Jika "mungkin" berarti melakukan atau tidak, tidak apa-apa, maka
JavaScript (Node.js) , 106 byte
Cobalah online!
sumber
Brain-Flak ,
764600 byteCobalah online!
Perbaikan besar berkat Jo King , terutama dalam konstruksi string tetapi juga beberapa penyesuaian logis di bagian utama. Penjelasan dari dia
Itu case-sensitive (jadi "Ah, saya melihat Anda sedang Orwell." Tidak cocok tetapi "Ah, saya melihat Anda Orwell sedang." Tidak), spasi di input tidak diabaikan, dan spasi yang tak tertandingi dalam string asli dikonversi menjadi
-
. Menurut pemahaman saya, semua itu adalah opsi yang valid.Penjelasan:
sumber
Haskell ,
182174172171170169 byteCobalah online!
Tidak Disatukan:
sumber
Prolog (SWI) , 109 byte
Cobalah online!
Case-sensitive dan whitespace sensitif. The
-/2
predikat adalah predikat utama dengan argumen pertama menjadi string masukan dan argumen kedua menjadi string output.sumber
JavaScript (Node.js), 103 byte
Cobalah online!
Hal - hal sensitif.
sumber
Pyth , 78 byte SBCS
Test suite
Karakter yang tidak dapat dicetak hadir dalam kode, lihat tautan untuk versi yang benar.
Peka huruf besar-kecil, tidak mengabaikan spasi putih.
sumber
Perl 5
-F
, 192 byteCobalah online!
sumber