题目描述
九宫格输入法适合在手机上使用,它在屏幕上的布局如下:
如果要打出一个 x
,就需要按两下 9
。第一次按 9
号键会出现 w
,按第二次才会将 w
改成 x
。注意 0
号键的作用是打出一个空格。
给定一些仅有小写字母和空格组成的字符序列,请计算用九宫格输入法总计需要按多少次键。
输入格式
单个字符序列:表示打印的内容,保证只由小写字母及空格组成,且两个单词之间有且只有一个空格。
输出格式
单个整数:表示按键的总次数。
数据范围
设 表示输入字符串的长度,则有
#include<bits/stdc++.h>
using namespace std;
#define int long long
string s;
int sum;
signed main(){
getline(cin,s);
for(int i=0;i<s.length();i++){
if(s[i]==' '||s[i]=='a'||s[i]=='d'||
s[i]=='g'||s[i]=='j'||s[i]=='m'||
s[i]=='p'||s[i]=='t'||s[i]=='w') sum++;
if(s[i]=='b'||s[i]=='e'||s[i]=='h'||
s[i]=='k'||s[i]=='n'||s[i]=='q'||
s[i]=='u'||s[i]=='x') sum+=2;
if(s[i]=='c'||s[i]=='f'||s[i]=='i'||
s[i]=='l'||s[i]=='o'||s[i]=='r'||
s[i]=='v'||s[i]=='y') sum+=3;
if(s[i]=='s'||s[i]=='z') sum+=4;
}printf("%d",sum);
}