Di alfabet
Dalam tantangan ini, Anda kesulitan mengingat huruf-huruf alfabet. Untuk menghindari ini, Anda naik dan turun alfabet, sampai Anda mendapatkan surat itu.
Karena Anda ingin kode Anda portabel, Anda akan menulisnya dengan blok huruf. Jumlah blok surat Anda terbatas karena sebagian besar dicuri sehingga Anda perlu memastikan kode Anda sesingkat mungkin.
Contohnya
Pasangan input / output dipisahkan oleh baris kosong:
Ac
ABc
Ad
ABcd
fA
fedCBA
adB
abcdcB
Hello, World!
HGfefghijkllmno, WVUTSrqpopqrqponmlkjihgfed!
Tantangan
Tujuan Anda adalah untuk menghubungkan huruf yang berdekatan dengan semua huruf alfabet ( A-Za-z
) antara. Jika kapitalisasi berbeda, kapitalisasi harus ditransformasikan di tengah. Jika kapitalisasi tidak dapat ditransformasikan secara merata di tengah, maka kapitalisasi menjadi putus setelah tengah. Jika karakter bukan karakter alfabet, tidak ada transformasi yang harus dilakukan.
Kemenangan
Ini adalah kode-golf sehingga kode terpendek dalam byte menang!
-10% Bonus: jika kode rantai Anda digit
adB
seharusnya bertransformasiabcdCB
karena c ada di tengah d dan b.Jawaban:
Pyth, 40 byte
Cobalah online.
sumber
Python 2,
303291288282276261253 byteIni adalah algoritma yang sama sekali berbeda dari algoritma Hannes Karppila, dan setelah banyak bermain golf, saya telah berhasil meningkatkan panjang. Saya pikir algoritma ini mungkin memungkinkan untuk salah satu kode terpendek dalam bahasa lain juga, terutama bahasa dengan loop do-while dan fungsi signum bawaan. Saran untuk perbaikan lebih lanjut disambut. (Sesuatu memberi tahu saya bahwa seluruh loop batin harus ditulis ulang sebagai pemahaman daftar.)
sumber
JavaScript (ES6),
198197194 bytePemakaian
Penjelasan
sumber
\w
akan gagal dengan angka. Coba '09'a>b?a-b:b-a
... dan ada banyak trik 'standar' lainnya untuk mempersingkat javascript. Dengan metode interpolasi Anda, Anda bisa mengalahkan skor saya. Lihat petunjuk di situs iniJavaScript ES6, 168 (186-10%)
176 193Edit Dimodifikasi untuk mendapatkan bonus 10%
Tes menjalankan cuplikan di bawah ini menggunakan peramban yang mendukung EcmaScript 6 (Saya menggunakan FireFox)
sumber
Python 2, 349 byte
Itu terlalu lama, tapi setidaknya itu yang pertama.
sumber