题目描述
一般的手机的键盘是这样的:
要按出英文字母就必须要按数字键多下。例如要按出 x 就得按 9 两下,第一下会出 w,而第二下会把 w 变成 x。0 键按一下会出一个空格。
你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。
输入格式
一行句子,只包含英文小写字母和空格,且不超过 200 个字符。
输出格式
一行一个整数,表示按键盘的总次数。
输入输出样例
输入
i have a dream
输出
23
说明/提示
NOI导刊2010普及(10)
import java.util.Scanner;
public class P1765 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int count =0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i)=='a'||str.charAt(i)=='d'||str.charAt(i)=='g'||str.charAt(i)=='j'
||str.charAt(i)=='m'||str.charAt(i)=='p'||str.charAt(i)=='t'
||str.charAt(i)=='w'){
count++;
}
else if (str.charAt(i)=='b'||str.charAt(i)=='e'||str.charAt(i)=='h'||str.charAt(i)=='k'
||str.charAt(i)=='n'||str.charAt(i)=='q'||str.charAt(i)=='u'
||str.charAt(i)=='x'){
count+=2;
}
else if (str.charAt(i)=='c'||str.charAt(i)=='f'||str.charAt(i)=='i'||str.charAt(i)=='l'
||str.charAt(i)=='o'||str.charAt(i)=='r'||str.charAt(i)=='v'
||str.charAt(i)=='y'){
count+=3;
}
else if (str.charAt(i)=='s'||str.charAt(i)=='z'){
count+=4;
}
else {
count++;
}
}
System.out.print(count);
}
}