题意:要按出英文字母就必须要按数字键多下。例如要按出 x 就得按 9 两下,第一下会出 w,而第二下会把 w 变成 x。0 键按一下会出一个空格。
你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。
输入样例:i have a dream
输出样例:23
import java.util.*; public class Main { public static void main(String[] args) { // TODO 自动生成的方法存根 Scanner in=new Scanner(System.in); Map<Character,Integer>map=new HashMap<>(32); map.put(‘a‘,1); map.put(‘b‘, 2); map.put(‘c‘, 3); map.put(‘d‘, 1); map.put(‘e‘, 2); map.put(‘f‘, 3); map.put(‘g‘, 1); map.put(‘h‘, 2); map.put(‘i‘, 3); map.put(‘j‘, 1); map.put(‘k‘, 2); map.put(‘l‘, 3); map.put(‘m‘, 1); map.put(‘n‘, 2); map.put(‘o‘, 3); map.put(‘p‘, 1); map.put(‘q‘, 2); map.put(‘r‘, 3); map.put(‘s‘, 4); map.put(‘t‘, 1); map.put(‘u‘, 2); map.put(‘v‘, 3); map.put(‘w‘, 1); map.put(‘x‘, 2); map.put(‘y‘, 3); map.put(‘z‘, 4); map.put(‘ ‘, 1); String str=in.nextLine(); char []num=str.toCharArray(); int count=0; for(char c:num)//foreach { count+=map.get(c); } System.out.println(count); } }
原文:https://www.cnblogs.com/coke-/p/12708796.html