Kita semua terbiasa dengan tombol telepon sekolah lama, kan? Untuk referensi, berikut ini tampilannya:
Diberikan String yang hanya terdiri dari huruf - huruf ASCII huruf kecil dan spasi tunggal , tugas Anda adalah mengembalikan jumlah ketukan yang harus dibuat untuk mengetikkan String penuh dengan keypad telepon seperti yang di atas.
Bagi mereka yang tidak terbiasa dengan ini, inilah cara kerjanya:
Kunci dengan digit
2
, misalnya, juga memiliki string yangabc
ditulis di atasnya. Untuk mengetika
, Anda harus menekan tombol ini sekali, karenab
Anda harus menekan dua kali dan untukc
Anda harus menekan tiga kali.Untuk huruf berurutan yang menggunakan tombol yang sama, Anda harus menunggu 1 detik sebelum menekan lagi. Jadi, jika Anda ingin mengetik
cb
, Anda harus menekan 3 kali untukc
, tunggu sebentar dan kemudian tekan dua kalib
, jadi masih 5 ketukan.Hal yang sama berlaku untuk semua tombol lain, kecuali untuk satu ruang, yang hanya membutuhkan 1 tekan. Perhatikan juga bahwa tombol
7
dan9
ada empat huruf di atasnya. Algoritma yang sama diterapkan, satu-satunya perbedaan adalah jumlah huruf. String yang terkait dengan setiap tombol dapat ditemukan pada gambar di atas (tetapi huruf kecil), atau dalam daftar berikut, yang berisi semua karakter yang mungkin Anda terima:"abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz", " "
Uji Kasus
Input -> Output (Penjelasan) "" -> 0 (tidak ada yang disadap) "air" -> 8 ("w, a, t" masing-masing membutuhkan 1 keran (pada tombol 9, 2 dan 8), "e" memerlukan 2 keran (pada tombol 3), "r" membutuhkan 3 keran (pada tombol 7 ), 1 + 1 + 1 + 2 + 3 = 8) "sabun" -> 9 (4 + 3 + 1 + 1) "candela" -> 13 (3 + 1 + 2 + 1 + 2 + 3 + 1) "kode golf" -> 20 (3 + 3 + 1 + 2 + 1 (untuk ruang) + 1 + 3 + 3 + 3) "raja bukit" -> 33 (2 + 3 + 2 + 1 + 1 + 3 + 3 + 1 + 1 + 2 + 2 + 1 + 2 + 3 + 3 + 3)
Spesifikasi
Aturan I / O standar dan Celah Default berlaku.
Anda hanya dapat mengambil input dalam tipe String asli bahasa Anda. Output dapat berupa integer atau representasi string dari integer itu.
Ini adalah kode-golf , jawaban terpendek dalam setiap bahasa menang.