P1765 手机_NOI导刊2010普及(10)

https://www.luogu.org/problemnew/show/P1765

题目描述

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

1 2 abc 3 def

4 ghi 5 jkl 6 mno

7 pqrs 8 tuv 9 wxyz

* 0 #

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

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

输入输出格式

输入格式:

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

输出格式:

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


我的思路:用一个数组存储所有字母按键的情况,然后每一个字母对应一个下标;

本来在本地能得到正确结果,可提交后全部WA了,后来讨论区里说,不能直接写else, 还有\n 和\r;

确实对字符串,以及读字符串的函数还没掌握好;

1,(\r, \n, \t)

  \r : 回车,使光标移动到该行行首;

  \n: 换行,使光标移动到下一行(不会回到行首);

  \t:TAB;

2,各种读入字符串的函数:

  1,cin : 读到空格结束,不会读入空格;

  2,gets_s :  读入一行,遇到换行结束,不读入换行符;

  3,cin.get:可读入一个字符,或者一行,遇到换行结束,但是不会将\n从缓冲区里删除;

  4,cin.getline:读入一行,遇到换行结束,并且会将\n从缓冲区里删除;(所以目前自己一般用这个吧);

   

猜你喜欢

转载自www.cnblogs.com/charlieli/p/9127078.html