关键就在于如何去判断相邻两个字符是否属于同一按键内,KEY:字母在字符串中本身的间距等于按键次数之差,则属于同一按键
#include<iostream>
#include <cstdio>
using namespace std;
int keyTab[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}; ////数据预处理
int main(){
string str;
while(cin>>str){
int time =0;
for(int i=0;i< str.size();i++){ //将所有的输入str一个一个输入
time +=keyTab[str[i]-'a']; //每次把该数组对应的提取出来,该数字就是按键的等待时间
if(i!=0 && str[i]-str[i-1] == keyTab[str[i]-'a'] -keyTab[str[i-1]-'a']) //判断相邻两个字符是否属于同一按键内,若在同一键内,相邻按键次数字母按键均为相同
time +=2; //两个字符在同一个键上,中间需要间隔时间2
}
printf("%d\n",time);
}
return 0;
}