Ми всі звикли до старої школи клавіатури телефону, правда? Для довідки, ось як це виглядає:
Враховуючи рядок, що складається лише з малих букв ASCII та одинарних пробілів , ваше завдання полягає в тому, щоб повернути кількість дотиків, які слід зробити, щоб набрати повну рядок за допомогою клавіатури телефону, як вище.
Для тих, хто з цим незнайомий, ось як це працює:
Наприклад, ключ із цифрою
2
також містить рядок,abc
записаний на ньому. Для введенняa
потрібно натиснути цю клавішу один раз, оскількиb
ви повинні натиснути двічі, а для цього -c
тричі.Для послідовних листів, які знаходяться на одній клавіші, потрібно почекати 1 секунду, перш ніж знову натиснути. Отже, якщо ви хочете ввести
cb
, потрібно натиснути 3 разиc
, зачекати секунду, а потім натиснути двічіb
, тому ще 5 натискань.Те саме стосується всіх інших клавіш, за винятком одного пробілу, на який потрібно лише 1 натискання. Також зауважте, що ключі
7
і на9
них чотири літери. Застосовується той самий алгоритм, різниця лише в кількості букв. Рядки, що відповідають кожній клавіші, можна знайти на зображенні вище (але в нижньому регістрі) або в наступному списку, який містить усі символи, які ви можете отримати:"abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz", " "
Випробування
Введення -> Вихід (Пояснення) "" -> 0 (нічого не слід натискати) "вода" -> 8 ("w, a, t" кожен потребує 1 крана (на клавішах 9, 2 і 8), "e" вимагає 2 крана (на клавіші 3), "r" вимагає 3 крана (на клавіші 7 ), 1 + 1 + 1 + 2 + 3 = 8) "мило" -> 9 (4 + 3 + 1 + 1) "кандела" -> 13 (3 + 1 + 2 + 1 + 2 + 3 + 1) "кодовий гольф" -> 20 (3 + 3 + 1 + 2 + 1 (для місця) + 1 + 3 + 3 + 3) "цар пагорба" -> 33 (2 + 3 + 2 + 1 + 1 + 3 + 3 + 1 + 1 + 2 + 2 + 1 + 2 + 3 + 3 + 3)
Технічні характеристики
Застосовуються стандартні правила вводу / виводу та лазівки за замовчуванням.
Ви можете брати дані лише в рідному типі String для вашої мови. Вихідним може бути ціле число або рядкове подання цього цілого числа.
Це код-гольф , найкоротша відповідь на кожній мові виграє.