22 OKTOBER ADALAH HARI KUNCI INTERNASIONAL CAPS ! LUAR BIASA, BEBERAPA JANGAN MENGAKUI KEMULIAAN KUNCI CAPS YANG KUAT. MEREKA KATAKAN ITU TAMPAKNYA "OBNOXIOUS" ATAU "LIKE SHOUTING" ATAU BEBERAPA NONSENSE. SEBAGAI ORANG UNTUK MENDAPATKAN KELUHAN INI YANG LUAR BIASA DAN KELUHAN INAN, HARAP MENULIS SAYA PROGRAM YANG MENGHIDUPKAN TEKS NORMAL KE DALAM "SENSIBLE" ATAU "WAJAR" TEKS UNTUK MEMBUAT KOMPLAIN STOP.
Deskripsi
Input dan output untuk solusi Anda adalah string yang hanya berisi karakter ASCII yang dapat dicetak.
String input akan berisi nol atau lebih caps lock yang berjalan . Sebuah caps lock menjalankan (atau CLR untuk pendek) didefinisikan sebagai berikut:
CLR tidak boleh mengandung huruf kecil (
a-z
), kecuali sebagai karakter pertama dari sebuah kata .- Sebuah kata , untuk tujuan tantangan ini, adalah urutan non-spasi. Jadi,
PPCG
,correcthorsebatterystaple
, danjkl#@_>00()@#__f-023\f[
semua dianggap kata s.
- Sebuah kata , untuk tujuan tantangan ini, adalah urutan non-spasi. Jadi,
CLR juga harus mengandung setidaknya satu ruang; karenanya, paling tidak harus dua kata s.
Setiap kata dalam CLR harus mengandung setidaknya dua huruf (
A-Za-z
).- Perhatikan bahwa ini merujuk pada CLR yang diambil dengan sendirinya, tanpa karakter di sekitarnya yang mungkin belum dimasukkan dalam CLR. Sebagai contoh, adalah tidak CLR karena string dengan sendirinya memiliki kata s dengan kurang dari dua huruf.
foO Bar
O B
- Perhatikan bahwa ini merujuk pada CLR yang diambil dengan sendirinya, tanpa karakter di sekitarnya yang mungkin belum dimasukkan dalam CLR. Sebagai contoh, adalah tidak CLR karena string dengan sendirinya memiliki kata s dengan kurang dari dua huruf.
CLR harus diuraikan "dengan rakus" —yaitu, Anda harus selalu menemukan CLR terpanjang yang mungkin.
Setelah Anda mengidentifikasi semua CLR dalam string input, tukar casing semua huruf di dalam CLR dan output string yang dihasilkan.
Uji kasus
Baris pertama adalah input, dan yang kedua adalah output. Bagian tebal dari input adalah substring yang dianggap CLR.
CAPS LOCK IS THE BEST!
caps lock is the best!
I really LOVE pROGRAMMING pUZZLES AND cOde Golf!
I really love Programming Puzzles and Code Golf!
This is a challenge on PPCG. This is a test CASE. TEST
This is a challenge on PPCG. This is a test case. test
LorEM iPSUM DOLoR sIT amet, conSECTETur ADIPISciNG eLIT. MAECENAS iD orci
Lorem Ipsum doloR sIT amet, conSECTETur ADIPIScing Elit. maecenas Id orci
;'>}{/[]'"A*(389971(*(#$&B#@*(% c'>#{@D#$! :,>/;[e.[{$893F
;'>}{/[]'"a*(389971(*(#$&b#@*(% C'>#{@d#$! :,>/;[e.[{$893F
iT'S cAPS lOCK DAY!!! cELebraTE THis WONDERFUL key
It's Caps Lock day!!! Celebrate this WONDERFUL key
aBcDE fGHIj KLmNO pQrST (uVwXY) ZZ___Zz__Z
aBcde Fghij KLmno PqrST (uVwxy) zz___zz__Z
#aA# aA
#aA# aA
Aturan
Anda dapat berasumsi bahwa input tidak akan pernah mengandung dua atau lebih spasi dalam satu baris, dan input itu tidak akan pernah mengandung spasi awal atau akhir.
20% bonus (kalikan panjang kode Anda dengan 0,8) jika seluruh kode Anda adalah CLR. ;) (kebanyakan hanya untuk bersenang-senang, karena pengajuan pemenang tidak akan memiliki bonus ini)
Ini adalah kode-golf , jadi kode terpendek dalam byte menang.
PPCG. T
mengandung spasi)Jawaban:
CJam,
100868381 byteCoba biola ini dalam juru bahasa CJam atau verifikasi semua kasus uji sekaligus .
Algoritma
Identifikasi CLR terpanjang yang mungkin dimulai dengan karakter pertama.
Jika ada, tukar casingnya, cetak, dan lepaskan dari awal string.
Lain, hapus satu karakter dari awal string, dan cetak itu tidak dimodifikasi.
Jika ada lebih banyak karakter yang tersisa, kembali ke langkah 1.
Bagaimana itu bekerja
sumber
Perl,
968280 byteLewati semua tes. Mengasumsikan input dari
STDIN
, dicetak keSTDOUT
.Bagaimana itu bekerja:
siapkan regex (
$y
) yang cocokcocokkan beberapa contoh string yang dipisahkan ruang yang cocok
$y
, gunakans///
untuk membalikkan hurufSaya yakin ada ruang untuk perbaikan. Jika ada cara untuk menyingkirkan seluruh
join-map-split
kesepakatan, masih ada peluang untuk mendapatkan bonus :)sumber
a-z
alih-alih[:lower:]
. Juga,-pe
biasanya dihitung sebagai 1 byte, dan tanda kutip tunggal sebagai nol byte.Javascript, 193
Penjelasan:
sumber