Terinspirasi oleh pesan obrolan ini
Tugas Anda adalah mengambil kata dan menemukan posisi rata-rata hurufnya di keyboard sebagai huruf.
Layout Keyboard
Karena tata letak bervariasi dari keyboard ke keyboard, kami akan menggunakan standar berdasarkan dari keyboard saya sendiri dalam pertanyaan ini.
Keyboard memiliki 3 baris, baris teratas dari kiri ke kanan berisi tombol
QWERTYUIOP
Baris kedua berisi huruf-huruf
ASDFGHJKL
Baris terakhir berisi
ZXCVBNM
Setiap huruf adalah 1 unit horisontal dari tetangganya ke kiri. Ini berarti W
1 jauh dari Q
dan E
1 jauh dari W
dan seterusnya.
Kunci di awal setiap baris memiliki posisi:
Q : 0,0
A : 1/3,1
Z : 2/3,2
Ini berarti bahwa baris-baris dipisahkan satu unit secara vertikal dan dua baris terbawah digeser oleh sepertiga dari baris di atasnya.
Anda harus mengambil kata sebagai input dan output huruf yang paling dekat dengan posisi rata-rata huruf dalam kata tersebut. Rata-rata satu set vektor adalah
(average x value, average y value)
Ketika dua kunci berjarak sama dari rata-rata, Anda dapat menampilkan sebagai kunci "terdekat".
Ini adalah kode-golf sehingga jawaban akan dicetak dalam byte dengan lebih sedikit byte yang lebih baik.
Contoh solusi
Mari kita hitung rata-rata APL
.
Kami mengonversi setiap huruf menjadi vektor
A -> (1/3,1)
P -> (9,0)
L -> (8 1/3,1)
Kami menambahkan ini tiga vektor untuk mendapatkan (17 2/3, 2)
. Kami kemudian membagi masing-masing koordinat dengan 3 (Jumlah huruf dalam kata) untuk mendapatkan (5 8/9, 2/3)
.
Surat terdekat (5 8/9, 2/3)
adalah J
di (6 1/3,1)
jadi hasil kami adalah J
.
Uji Kasus
APL -> J
TEXT -> R
PPCG -> J
QQQQ -> Q
ZZZZ -> Z
PPPP -> P
MMMM -> M
QQSS -> A or W
F
sepertinya tidak lagi menjadi output yang diizinkan ...Java (OpenJDK 8) ,
452431424400389324322296285281276274260258257 byteMulai untuk bermain golf
Cobalah online!
sumber
TEXT
.Mathematica, 234 byte
sumber