C語言基礎之手機鍵盤

時間限制:1秒 空間限制:65536K 熱度指數:10333

 算法知識視頻講解

校招時部分企業筆試將禁止編程題跳出頁面,爲提前適應,練習時請使用在線自測,而非本地IDE。

題目描述

按照手機鍵盤輸入字母的方式,計算所花費的時間 如:a,b,c都在“1”鍵上,輸入a只需要按一次,輸入c需要連續按三次。 如果連續兩個字符不在同一個按鍵上,則可直接按,如:ad需要按兩下,kz需要按6下 如果連續兩字符在同一個按鍵上,則兩個按鍵之間需要等一段時間,如ac,在按了a之後,需要等一會兒才能按c。 現在假設每按一次需要花費一個時間段,等待時間需要花費兩個時間段。 現在給出一串字符,需要計算出它所需要花費的時間。

輸入描述:

一個長度不大於100的字符串,其中只有手機按鍵上有的小寫字母

輸出描述:

輸入可能包括多組數據,對於每組數據,輸出按出Input所給字符串所需要的時間

示例1

輸入

複製

bob
www

輸出

複製

7
7

注意:7和9上是有4個字符的。

#include<stdio.h>
#include<string.h>
int main() {
 char a[101];
 int count=0,k[26]={1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,4,1,2,3,1,2,3,4};
 scanf("%s",a);
 int n=strlen(a);
 for(int i=0;i<n;i++) {
  count+=k[s[i]-'a'];
  if(i>0&&k[a[i]-'a']-k[a[i-1]-'a']==(a[i]-'a')-(a[i-1]-'a'))
   count+=2;
 }
 printf("%d",count);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章