手机键盘 (模拟) 您所在的位置:网站首页 手机虚拟键盘按键a 手机键盘 (模拟)

手机键盘 (模拟)

2023-09-12 18:20| 来源: 网络整理| 查看: 265

题目描述

按照手机键盘输入字母的方式,计算所花费的时间 如:a,b,c都在“1”键上,输入a只需要按一次,输入c需要连续按三次。 如果连续两个字符不在同一个按键上,则可直接按,如:ad需要按两下,kz需要按6下 如果连续两字符在同一个按键上,则两个按键之间需要等一段时间,如ac,在按了a之后,需要等一会儿才能按c。 现在假设每按一次需要花费一个时间段,等待时间需要花费两个时间段。 现在给出一串字符,需要计算出它所需要花费的时间。

输入描述: 一个长度不大于100的字符串,其中只有手机按键上有的小写字母 输出描述: 输入可能包括多组数据,对于每组数据,输出按出Input所给字符串所需要的时间

示例1

输入 bob www 输出 7 7

来源:清华大学研究生复试试题

分析:一开始这个题有个小坑,题目所说的手机键盘就是日常所见的九宫格键盘。不过如果不注意细节的话我们很可能认为每个键只包括三个字母,但实际键盘是这样的,如图

                              

这也是为什么题意中说kz需要按6下,因为按Z时需要按4下。

注意到这个细节之后进行模拟就行了,题目的测试数据给的比较水,运用暴力是不会超时的

#include const int M1=27,M2=1e2+5; int table1[M1]={0,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,4,1,2,3,1,2,3,4}; int i,j,k,n,m,sum,s1,s2;//上面的table表用于存取每个字母需要按的次数 char a[M2]; int test(int h)//test函数用于辨别每个字母所在的键 { int t; if(h22) return 8; else if(h>19&&h15&&h12&&h9&&h6&&h3&&h


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有