P1765 手机

题目描述

一般的手机的键盘是这样的:

要按出英文字母就必须要按数字键多下。例如要按出 x\tt xx 就得按 999 两下,第一下会出 w\tt ww,而第二下会把 w\tt ww 变成 x\tt xx000 键按一下会出一个空格。

你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。

输入格式

一行句子,只包含英文小写字母和空格,且不超过 200 个字符。

输出格式

一行一个整数,表示按键盘的总次数。

输入输出样例 #1

输入 #1

i have a dream

输出 #1

23

说明/提示

NOI 导刊 2010 普及(10)

//1765
#include<cstring>
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
using namespace std;
string oriText;
int a[200];
int ans;
int main()
{
	a['a']=1;	a['b']=2;	a['c']=3;
	a['d']=1;	a['e']=2;	a['f']=3;
	a['g']=1;	a['h']=2;	a['i']=3;
	a['j']=1;	a['k']=2;	a['l']=3;
	a['m']=1;	a['n']=2;   a['o']=3;
	a['p']=1;	a['q']=2;	a['r']=3;	a['s']=4;
	a['t']=1;	a['u']=2;	a['v']=3;	a[' ']=1;
	a['w']=1;	a['x']=2;	a['y']=3;	a['z']=4;	
	getline(cin,oriText);
	for(int i=0;i<oriText.size();++i)	
		ans+=a[oriText[i]];	
		
	printf("%d\n",ans);
	return 0;	
		
} 
Logo

集算法之大成!助力oier实现梦想!

更多推荐