私たちは皆、昔ながらの電話キーパッドに慣れていますよね?参考までに、次のようになります。
小文字のASCII文字と単一のスペースのみで構成される文字列を考えると、あなたの仕事は、上記のように電話のキーパッドで文字列全体を入力するために必要なタップ数を返すことです。
これに不慣れな方のために、以下にその仕組みを示します。
2
たとえば、数字が付いたキーには、文字列もabc
書き込まれています。を入力するにはa
、このキーを1回b
押すc
必要があります。2回押す必要があり、3回押す必要があります。同じキーにある連続した文字の場合、もう一度押す前に1秒待つ必要があります。したがって、を入力する場合は
cb
、を3回押してc
、1秒待ってから、を2回押しb
て5タップする必要があります。同じことが他のすべてのキーにも当てはまりますが、1回押すだけでよい1 つのスペースを除きます。また、キー
7
に9
は4つの文字があります。同じアルゴリズムが適用され、唯一の違いは文字数です。各キーに対応する文字列は、上の画像(ただし小文字)、または受信する可能性のあるすべての文字を含む次のリストにあります。"abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz", " "
テストケース
入力->出力(説明) ""-> 0(何もタップしないでください) "water"-> 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)
スペック
標準のI / Oルールとデフォルトの抜け穴が適用されます。
言語のネイティブString型でのみ入力を取得できます。出力は、整数またはその整数の文字列表現のいずれかです。
これはcode-golfであり、すべての言語で最短の答えが得られます。