Semua orang tahu bahwa berita itu membosankan. Sangat membosankan . Kecuali jika itu tentang Politisi dan skandal mereka. Itu menyenangkan! Namun sayang, Politisi hanya bisa melakukan begitu banyak skandal. Jadi, saya mempekerjakan Anda untuk membuat berita lebih menarik.
Sasaran Diberikan cuplikan HTML, lakukan semua penggantian yang ditemukan sini , yaitu, dalam gambar ini:
TETAPI Anda seharusnya tidak mengedit sendiri tag HTML apa pun. Saya menyebut kata yang valid kata apa pun yang tidak ditemukan dalam tag HTML atau atributnya. Artinya, Anda tidak harus mengganti<div class="smartphone">iPhone</div>
dengan <div class="pokedex">iPhone</div>
, tetapi harus mengganti<div>election</div>
dengan <div>eating contest</div>
.
Aturan parsing
- EDIT Anda hanya harus mencocokkan kata-kata yang digambarkan oleh non-kata. Artinya, Anda hanya harus mencocokkan kata-kata penuh. (Misalnya, cocokkan "Halo saksi" tetapi tidak "Saksi di bawah", "Dialah", atau "Pemilihan saksi."
- Jika Anda tidak bisa mengetikkan karakter di papan ketik, Anda harus menampilkan padanan terdekat. (Misalnya, "Smartphone" akan benar-benar menjadi "Pokedex")
- Kasus huruf pertama atau huruf besar semua harus dipertahankan. (Misalnya, "Diduga, mereka mati" menjadi "Agak mungkin, mereka mati", "Mereka diduga mati" menjadi "Mereka agaknya mungkin mati", dan "PEMILU!" Menjadi "KONTES MAKAN!", Sedangkan "SpAcE" menjadi "Spaaace" dan "nEW STUDY" menjadi "tumblr post")
- Semua kasing harus dicocokkan. (Yaitu, Anda harus mencocokkan sebuah kata, terlepas dari huruf kapitalnya.)
- Setiap contoh yang
a <vowel>
harus dipenuhi harus menjadian <vowel>
dan sebaliknya . (Misalnya, "Seorang senator" menjadi "Tuan elf") Anda tidak harus melakukan ini untuk setiap contoh, tetapi setidaknya untuk penggantian Anda sendiri. - Apa pun yang jamak juga harus mempertahankan pluralisasi dalam terjemahan (Misalnya, "Smartphone" menjadi "pokedex" dan "Spaces" menjadi "Spaaaces")
- Segala sesuatu dalam bentuk tertentu harus tetap dalam bentuk itu dalam terjemahan. (Misalnya, "Dibangun Kembali" menjadi "Dibalas", "Dibangun Kembali" menjadi "Pembalas", dll.)
- Apa pun dalam bentuk tunggal harus tetap tunggal dalam terjemahan (Misalnya, "Pemimpin Kongres" menjadi "Roh Sungai")
- Jika entri mencakup beberapa elemen HTML, Anda harus tetap mencocokkannya, tetapi Anda dapat "membuang" elemen perantara. (Misalnya,
S<b>pa</b>ace
harus menjadi sekadar "spaaace"). Jika entri mandiri dalam satu elemen, itu harus dicocokkan dengan benar dan tag dipertahankan. - "Para saksi" harus menjadi "Orang-orang itu, aku tahu"
- "Saksi" harus menjadi "Bung ini aku tahu"
- "Saksi" harus menjadi "Bung itu aku tahu"
- "Tidak dapat dihubungi untuk berkomentar" harus menjadi "Bersalah dan semua orang tahu itu"
- "Tidak dapat dihubungi untuk berkomentar" harus menjadi "Bersalah dan semua orang tahu itu"
Bonus
Jika Anda memenuhi -N%
bonus, Anda new amount = (old amount) * (1 - N/100)
. Jadi, jika Anda bertemu -5%
bonus dengan kode 500 byte, Anda new amount = 500 * (1 - 5/100) = 500 * .95 = 475
.
- -5% bonus jika, untuk setiap instance "spasi" setelah penggantian pertama, "a" tambahan ditambahkan. Jadi, penggantian pertama adalah "spaaace", yang kedua adalah "spaaaace", yang ketiga adalah "spaaaaace", dll.
- -5% bonus jika, untuk setiap nomor yang valid, Anda mengganti angka itu dengan tautan ke masing-masing komik XKCD. (Itu belum harus ada). Jika Anda pergi untuk bonus ini, Anda harus mencocokkan nomor seperti
500
,3,000
,4 523
, dan5.324
. (Anda dapat memilih untuk mengganti, sebaliknya, nomor dengan gambar komik. Jika Anda melakukan ini, bukannya-5%
bonus, Anda akan mendapatkan-15% bonus
.-15%
Bonus tambahan lain jika Anda dapat menambahkan teks-judul ke gambar, jika ada .) - -25% bonus jika Anda dapat mengganti secara bersamaan semua contoh di sisi kanan gambar dengan yang di sebelah kiri. (Misalnya, "spaaace" menjadi "ruang", "kontes makan" menjadi "pemilihan", dll.) Jika Anda memilih salah satu bonus, Anda harus dapat mengembalikannya ke entri masing-masing. (Misalnya,
http://www.xkcd.com/542
harus menjadi "542", dan "spaaaaaaaace" harus menjadi "ruang".) - Anda dapat memilih untuk melakukan minimal 6 pergantian, tetapi untuk setiap pergantian yang tidak dilakukan (tidak termasuk pergantian bonus), Anda akan menerima penalti tambahan + 10%.
Contoh IO (tidak ada bonus)
Input: Witnesses allegedly used their smartphones to commit the crime.
Output: These dudes I know kinda probably used their pokedex to commit the crime.
Input: Mayor Golfalot rebuilt the city after the fatal election.
Output: Mayor Golfalot avenged the city after the fatal eating contest.
Input: This <b>new study</b> shows that people in <span class="space">space</span> cannot be reached for comment.
Output: This <b>tumblr post</b> shows that people in <span class="space">spaaace</span> are guilty and everyone knows it.
Input: <b>g</b><i>oo</i><s>g</s><u>le</u> glass is terrible. :(
Output: virtual boy is terrible. :(
Input: Electric SMARTPHONES have been shown to be more productive when not used by Senators and when not used in cars.
Output: Atomic POKEDEX have been shown to be more productive when not used by Elf-lords and when not used in cats.
Input: Homeland Security has been established as an evil foundation, especially in space.
Output: Homestar runner has been established as an evil foundation, especially in spaaace.
Input: The congressional leaders are testy today.
Output: The river spirits are testy today.
Input: SPACE is not a Senator or a cAR.
Output: SPAAACE is not an Elf-lord or a cat.
Input: Mr. Biz is running for reelection.
Output: Mr. Biz is running for reelection.
Input: Google glass !
Output: Virtual boy !
Input: New (or old) study
Output: New (or old) study
Ini adalah kode-golf , jadi program terpendek dalam byte menang.
<br/>
)Jawaban:
Perl 5 , 850
Banyak regex yang digunakan atau dihasilkan.
% L hash digunakan untuk kata-kata yang diulang.
Uji
sumber
JavaScript ES6, 954 byte
Saya pikir ini akan menjadi jauh lebih mudah daripada sebelumnya! Saya awalnya menggunakan JavaScript sehingga saya bisa dengan mudah turun ke node teks dan mengganti teks di sana, tapi bukan itu pertanyaannya, jadi saya berakhir dengan keganjilan ini! Itu melewati semua kasus uji kecuali untuk di
<b>g</b><i>oo</i><s>g</s><u>le</u> glass is terrible. :(
mana seluruh string kembali dalam<b>
tag karena tag menjadi seimbang. Sebagian besar kode adalah tabel pencarian, dan saya mungkin masih melewatkan beberapa kasus tepi, tapi saya tidak bisa menemukan cara yang lebih baik untuk menangani tegang dengan benar dan saya yakin saya bisa mengompres lebih banyak, tetapi saya Saya kehabisan ide ... Saya yakin saya akan kembali lagi nanti. Seharusnya menggunakan Perl, pilihan yang lebih baik @LukStorms !Saya menerapkan satu bonus sebesar 5% untuk
spaaace
mendapatkan tambahana
setelah setiap pertandingan yang berhasil. Penggunaanalert()
seperti yang disarankan oleh @sysreq , terima kasih!Contohnya
Bonus: bookmarklet
Jalankan ini di konsol Anda untuk memperbarui teks tubuh di tempat:
sumber
alert
lebih pendek dariconsole.log
selama dijalankan di browser.<b>
tag "masalah" bisa diterima, jika tidak lebih diterima. DAN saya suka contoh terakhir. Saya mencoba untuk memikirkan satu yang menggabungkan sebagian besar dari mereka. Selamat atas jawaban pertama! Saya yakin ini kompetitif;)