Sebuah plakat perunggu di alas Patung Liberty menampilkan puisi " The New Colossus " oleh Emma Lazarus, yang sebagian isinya berbunyi:
Berikan aku lelahmu, malangmu,
kerumunanmu yang ingin bernafas lega,
Sampah yang malang dari pantaimu yang luas.
Kirim ini, tunawisma, tost-tost kepada saya,
saya angkat lampu saya di samping pintu emas!
Untuk menyederhanakan bagian puisi ini untuk tantangan ini, kami akan membuatnya menjadi huruf besar dan mengganti baris baru dengan garis miring ( /
), menjaga koma dan tanda baca lainnya seperti:
GIVE ME YOUR TIRED, YOUR POOR,/YOUR HUDDLED MASSES YEARNING TO BREATHE FREE,/THE WRETCHED REFUSE OF YOUR TEEMING SHORE./SEND THESE, THE HOMELESS, TEMPEST-TOST TO ME,/I LIFT MY LAMP BESIDE THE GOLDEN DOOR!
Kami akan memanggil string ini S. Memiliki hash md5 8c66bbb9684f591c34751661ce9b5cea
. Anda dapat mengasumsikan bahwa ia memiliki baris tambahan, di mana hash md5 adalah 0928ff6581bc207d0938b193321f16e6
.
Tulis program atau fungsi yang menggunakan satu string. Ketika string adalah S, output berurutan , satu per baris, enam frasa yang menggambarkan tipe orang yang dilukiskan oleh puisi Lady Liberty:
TIRED
POOR
HUDDLED MASSES YEARNING TO BREATHE FREE
WRETCHED REFUSE OF YOUR TEEMING SHORE
HOMELESS
TEMPEST-TOST
(String yang tepat ini, opsional diikuti oleh satu baris baru, harus menjadi output Anda untuk input S.)
Untuk setidaknya satu string input yang bukan S, output Anda harus berupa string selain dari enam baris di atas. Ini bisa sesederhana keluaran hanya TIRED
jika inputnya saja GIVE ME YOUR TIRED
. Aturan ini untuk mencegah hardcoding murni. Jika tidak, ketika string input bukan S, kode Anda dapat melakukan apa saja.
Ini pada dasarnya adalah tantangan output konstan di mana Anda diberi input yang relatif dekat dengan output. Anda tentu saja sebagian besar mengabaikan input dan meng-hardcode output, tetapi mungkin lebih baik, misalnya, menghapus substring dari input yang diperlukan untuk output.
Untuk referensi, berikut adalah indeks berbasis nol dan panjang dari enam jalur output di S:
13 5, 25 4, 36 39, 81 37, 136 8, 146 12
Kode terpendek dalam byte menang.
sumber
Jawaban:
Jelly , 19 byte
Cobalah online! atau coba dengan teks lain .
Bagaimana?
Mengindeks ke dalam daftar semua irisan berdekatan dari string input yang tidak kosong dan bergabung dengan umpan baris.
Kode sebelumnya, 22 byte:
Partisi string input, mengambil setiap elemen kedua dan bergabung dengan umpan garis.
“ÇŒȷœ%LRw⁹ƊƓɠ‘
adalah daftar indeks halaman kode,Ṭ
membuat daftar nol dengan yang di indeks itu,œṗ
mempartisi input pada indeks yang sebenarnya dari daftar itu,Ḋ
menghapus elemen pertama,m2
mengambil setiap elemen kedua, danY
bergabung dengan umpan baris.sumber
JavaScript (ES6),
12869 byteDapat menampilkan baris kosong atau sampah saat input berbeda
S
.sumber
Bash ,
766560 byteCobalah online!
sumber
Mathematica , 71
sumber
PowerShell , 72 byte
Cobalah online!
Penjelasan
Ini adalah solusi regex yang sangat jelek.
Memisahkan string ke dalam array pada
/
atau.
atau,
dan kemudian mengganti bagian-bagian dari setiap string yang cocok dengan pola pertama, yang memberikan array-replace
string d, kemudian menggunakan-match
operator untuk mengembalikan array elemen yang cocok dengan pola kedua (yang menghilangkan dari baris kosong dan 2 baris yang tidak difilter sebelumnya).sumber
Mathematica, 86 byte
Fungsi tanpa nama mengambil daftar karakter sebagai input dan mengembalikan string. Ekstrak saja substring yang relevan dari input dan gabungkan dengan baris baru.
sumber
String
tetapiCharacter
s.TI-Basic, 58 byte
Sangat mudah.
Disp
sepertiprintln
, jadi ada baris baru di antaranya.sumber
Retina ,
3832 byteIni mungkin dapat ditingkatkan, tetapi ini adalah pekerjaan untuk regex!
Cobalah online!
sumber