Teka-teki:
Pertimbangkan permainan konsol / genggam dengan d-pad di mana Anda diminta memasukkan nama jenis. Ini muncul di banyak game lama sebelum penggunaan QWERTY dipopulerkan di konsol (mis. Saya percaya Wii menggunakan tata letak keyboard QWERTY untuk input). Biasanya, keyboard di layar melihat efek dari *:
Default:
0 1 2 3 4 5 6 7 8 9
A B C D E F G H I J
K L M N O P Q R S T
U V W X Y Z _ + ^ =
Dengan penutup case:
0 1 2 3 4 5 6 7 8 9
a b c d e f g h i j
k l m n o p q r s t
u v w x y z - + ^ =
Yaitu, semua kunci alfanumerik dan berikut ini:
_
: Satu spasi
-
: Tanda hubung
+
: Alihkan case hanya untuk huruf berikutnya
^
: Toggle caps lock (yaitu, alihkan case dari semua huruf)
=
: Enter, complete
* Jelas saya mengganti kunci seperti "BKSP" dan "ENTER" dengan versi yang lebih pendek
Dan kemudian hardware akan mencakup d-pad (atau beberapa bentuk kontrol di mana Anda bisa pergi up
, down
, left
dan right
)
Layar juga biasanya memungkinkan Anda bergerak dari satu sisi langsung ke yang lain. Artinya, jika Anda fokus pada surat itu J
, menekan right
akan memungkinkan Anda untuk pindah ke surat itu A
.
Setiap kali saya memasukkan nama saya, saya selalu berusaha mencari cara tercepat untuk melakukannya.
Tujuan:
Program Anda akan mengambil input string yang dapat menyertakan karakter alfanumerik apa pun termasuk spasi dan tanda hubung, dan tujuan Anda adalah untuk menghasilkan jumlah penekanan tombol terpendek pada d-pad untuk menampilkan string yang diperlukan.
Pertimbangan:
Anda tidak perlu memasukkan tombol yang ditekan untuk menekan karakter yang sebenarnya.
Fokus selalu dimulai pada A
Enter =
harus ditekan di akhir
Contoh:
input: Code Golf
output: 43
Dijelaskan:
A
-> C
= 2
C
-> ^
= 6 (bergerak ke kiri)
^
-> o
= 5
o
-> d
= 2
d
-> e
= 1
e
-> +
= 5
+
-> _
= 1
_
-> +
= 1
+
-> G
= 3
G
-> o
= 3
o
-> l
= 3
l
-> f
= 5
f
-> =
= 6
Perhatikan bahwa lebih cepat menekan +
dua kali untuk a _
dan a G
daripada menekan ^
satu kali, lalu tukar kembali.
Pengajuan yang menang (saya akan mengizinkan setidaknya 1w) akan menjadi solusi terpendek (dalam byte). Karena ini adalah pertanyaan pertama saya, saya harap ini jelas dan tidak terlalu sulit.