Tugas
Tugas Anda adalah mengubah teks menjadi ortografi abad pertengahan.
Detail
j
dikonversi kei
danJ
keI
.u
danU
pada awal kata dikonversi menjadiv
danV
masing - masing.v
danV
di mana saja kecuali awal kata dikonversi keu
danU
masing - masing.s
dikonversi keſ
(U + 017F) kecuali di akhir kata atau didahului oleh yang lains
.
Spesifikasi
- Sebuah kata didefinisikan sebagai urutan huruf dalam
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
. - Semua kata akan memiliki setidaknya dua huruf.
- Input hanya akan terdiri dari karakter ASCII yang dapat dicetak (U + 0020 - U + 007E).
- Tidak akan ada kejadian lebih dari dua kali berturut-turut
s
. Itu adalah,sss
tidak akan menjadi substring dari input.
Testcases
Kata individual:
Input Output
------------------------
Joy Ioy
joy ioy
Universe Vniuerſe
universe vniuerſe
Success Succeſs
successfull ſucceſsfull
Supervise Superuiſe
supervise ſuperuiſe
Super-vise Super-viſe
I've I've
majors maiors
UNIVERSE VNIUERSE
0universe 0vniuerſe
0verify 0verify
I0ve I0ve
_UU_ _VU_
_VV_ _VU_
ss_ ſs_
Paragraf utuh:
Input: Christian Reader, I have for thy use collected this small Concordance, with no small labour. For being to comprise much in little roome, I was to make choyse of the most principall and usefull places, and to rank them under such words as I thought most essentiall and materiall in the sentence, because the scant roome allotted unto me, would not permit that I should expresse them under every word in the verse, as it is the manner in large Concordances.
Output: Chriſtian Reader, I haue for thy vſe collected this ſmall Concordance, with no ſmall labour. For being to compriſe much in little roome, I was to make choyſe of the moſt principall and vſefull places, and to rank them vnder ſuch words as I thought moſt eſsentiall and materiall in the ſentence, becauſe the ſcant roome allotted vnto me, would not permit that I ſhould expreſse them vnder euery word in the verſe, as it is the manner in large Concordances.
The SHA-256 hash dari output dari testcase terakhir adalah:
5641899e7d55e6d1fc6e9aa4804f2710e883146bac0e757308afc58521621644
Penolakan
Medievall orthographie bukanlah penipu itu. Harap jangan mengeluh jika Anda dapat memesan buku lama dengan ortografi yang berbeda.
ſ
sebagai 1 byte?Super-vise
menjadiSuper-viſe
?Jawaban:
SED,
144 140111 Bytesdisimpan 29 byte berkat NoOneIsHere
sumber
-e
. Gunakan;
di antara pernyataan.Python 3 (
128126 byte)chr(ord(c.group())^3)
terasa berlebihan untuk xor string karakter tunggal, tapi mungkin Pythonista nyata dapat menyarankan golf. Namun, itu sangat nyaman yang^3
cukup untuk bertukari <-> j
danu <-> v
.NB Satu-satunya hal di sini yang membutuhkan Python 3 adalah karakter Unicode: Python 2 mengeluh
Non-ASCII character '\xc5' <snip> but no encoding declared
.sumber
\b
karena\b
menggunakan definisi kata yang mencakup angka dan garis bawah.(?i)
.Retina ,
555450 byteCobalah online! (Baris pertama memungkinkan rangkaian uji terpisah linefeed.)
sumber
Python 3.5,
124116111118125144142 byte:Nah, ini sepertinya pekerjaan yang sempurna untuk ekspresi reguler !
sumber
J|j
sebagai ganti[Jj]
JavaScript (ES6), 154
Menggunakan parseInt untuk mengidentifikasi karakter alfabet. Catatan: santai tapi untungnya
parseInt('undefined',36)|0
<0Kurang golf
Uji
sumber
JavaScript (ES6), 111 byte
Penjelasan: Karena JavaScript regexp tidak memiliki tampilan di belakang, saya malah memecah string menjadi kata-kata, yang kemudian memungkinkan saya untuk menggunakan
^
dan\B
sebagai huruf negatif dan positif terlihat di belakang.ss
ditangani dengan mencocokkan secara terpisah, dengan ekspresi pengganti yang sedikit canggung yang membutuhkan byte lebih sedikit daripada hanya mengganti karakter pertamac
atau menambahkan ekstras
ke kedua string dan menggunakan substring yang cocok.sumber
c=>"iIvVuUſ"["jJuUvVs".search(c)]||"ſs"
itu bagus. 👍🏻CJam (
8988 bytes)Demo online
Saya tidak pernah mengerti mengapa CJam tidak memiliki regex, tetapi karena tidak ada solusi yang tidak menggunakannya.
sumber
Ruby, 85 + 1 = 86 byte
Jalankan dengan
ruby -p
(+1 byte untukp
flag). Mengambil input pada stdin.Jalankan tes pada ideone (dibungkus dengan lambda di sana karena Anda tidak dapat memberikan bendera ke ideone): http://ideone.com/AaZ8ya
sumber