假设有九宫格输入法键盘布局如下:

 [ 1,.?! ] [ 2ABC ] [ 3DEF  ][ 4GHI  ] [ 5JKL ] [ 6MNO  ][ 7PQRS ] [ 8TUV ] [ 9WXYZ ][ 0空  ]

注意: 中括号[ ]仅为了表示键盘的分隔,不是输入字符。每个中括号中,位于首位的数字字符即是键盘的按键,按一下即可输入该数字字符。多次按同一个键,则输入的字符依次循环轮流,例如按两次3,则输入D;按5次7,则输入S;按6次2,则输入A。按键0的输入组合是0和空格字符,即按两次0输入空格。

你需要对于给定的按键组合,给出该组合对应的文本。

输入格式:
输入在一行中给出数个字符的按键组合(例如 999 表示按3次9),每个字符的按键组合之间用空格间隔,最后一个输入法组合之后以换行结束。输入数据至少包括一个字符的按键组合,且输入总长度不超过500个字符。

输出格式:
在一行中输出该按键组合对应的文本。

输入样例:
22 5555 22 666 00 88 888 7777 4444 666 44
输出样例:
ALAN TURING

题解

注意有可能超过每个按键的总和数,所以要取个模,否则第二个测试点过不去。
最开始我以为是每个数字间不止一个空格,所以改成了现在这个代码。

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
string mp[] = {"0 ","1,.?!","2ABC","3DEF","4GHI","5JKL","6MNO","7PQRS","8TUV","9WXYZ"};
int main(){string input;getline(cin, input);for(int i = 0; i < input.size();){int j = i;while(j < input.size() && input[i] == input[j]) j++;int len = (j - i - 1) % mp[input[i]-'0'].size();cout<<mp[input[i]-'0'][len];while(j < input.size() && input[j] == ' ') j++;i = j;}return 0;
}

版本2

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
string mp[] = {"0 ","1,.?!","2ABC","3DEF","4GHI","5JKL","6MNO","7PQRS","8TUV","9WXYZ"};
int main(){vector<string> v;char c;string str;while(cin>>str){c = getchar();v.push_back(str);if(c == '\n') break;}for(auto s: v){int len = (s.size() - 1) % mp[s[0]-'0'].size();cout<<mp[s[0]-'0'][len];}return 0;
}

P2 九宫格输入法 (15 分)相关推荐

  1. 5-4 九宫格输入法 (15分)

    5-4 九宫格输入法   (15分) 假设有九宫格输入法键盘布局如下: [ 1,.?! ] [ 2ABC ] [ 3DEF ][ 4GHI ] [ 5JKL ] [ 6MNO ][ 7PQRS ] [ ...

  2. 5-13 九宫格输入法 (15分)

    5-13 九宫格输入法   (15分) 假设有九宫格输入法键盘布局如下: [ 1,.?! ] [ 2ABC ] [ 3DEF ][ 4GHI ] [ 5JKL ] [ 6MNO ][ 7PQRS ] ...

  3. 7-7 九宫格输入法 (15分)

    7-7 九宫格输入法 (15分) 假设有九宫格输入法键盘布局如下: [ 1,.?! ] [ 2ABC ] [ 3DEF ] [ 4GHI ] [ 5JKL ] [ 6MNO ] [ 7PQRS ] [ ...

  4. 7-83 九宫格输入法 (15 分)

    7-83 九宫格输入法 (15 分) 假设有九宫格输入法键盘布局如下: [ 1,.?! ] [ 2ABC ] [ 3DEF ][ 4GHI ] [ 5JKL ] [ 6MNO ][ 7PQRS ] [ ...

  5. 7-13 九宫格输入法 (15 分)

    假设有九宫格输入法键盘布局如下: [ 1,.?! ] [ 2ABC ] [ 3DEF ] [ 4GHI ] [ 5JKL ] [ 6MNO ] [ 7PQRS ][ 8TUV ] [ 9WXYZ ] ...

  6. 7-21 九宫格输入法 (15 分)

    假设有九宫格输入法键盘布局如下: [ 1,.?! ] [ 2ABC ] [ 3DEF ][ 4GHI ] [ 5JKL ] [ 6MNO ][ 7PQRS ] [ 8TUV ] [ 9WXYZ ][ ...

  7. 7-60 九宫格输入法 (15 分)

    假设有九宫格输入法键盘布局如下: [ 1,.?! ] [ 2ABC ] [ 3DEF ] [ 4GHI ] [ 5JKL ] [ 6MNO ] [ 7PQRS ] [ 8TUV ] [ 9WXYZ ] ...

  8. 九宫格输入法 (25分) 解题报告

    九宫格输入法   (25分) 假设有九宫格输入法键盘布局如下: [ 1,.?! ] [ 2ABC ] [ 3DEF ][ 4GHI ] [ 5JKL ] [ 6MNO ][ 7PQRS ] [ 8TU ...

  9. 九宫格输入法(最易懂版本)

    P2 九宫格输入法 (15point(s)) 假设有九宫格输入法键盘布局如下: [ 1,.?! ] [ 2ABC ] [ 3DEF ][ 4GHI ] [ 5JKL ] [ 6MNO ][ 7PQRS ...

最新文章

  1. R语言广义线性模型函数GLM、R中有几种logistic回归扩展和变异、robust包中的glmRob函数鲁棒logistic回归、ms包中的lrm函数拟合序数逻辑回归
  2. 已经导入jar包mysql还是报错_java通过JDBC连接数据库,老是报错:ClassNotFoundException.该导入的jar包我也已经导入了。...
  3. HTML中Css详细介绍
  4. [Tomcat]Tomcat6和Tomcat7的区别
  5. 两台主机ssh的测试及配置
  6. 如何应用设计模式设计你的足球引擎
  7. Host key verification failed.
  8. android 仿支付宝菜单_这个 Android 几乎放弃的设计,iOS 要用上了?
  9. yum安装报错Protected multilib versions:
  10. OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据...
  11. Linux下多进程服务端客户端模型二(粘包问题与一种解决方法)
  12. 【报告分享】中国移动互联网2021年度大报告.pdf(附下载链接)
  13. 海量数据挖掘MMDS week1: MapReduce
  14. Jmeter(十九) 后置处理器JSON Extractor 提取json的多个值
  15. linux 每日学一点《将LINUX变成路由器》
  16. 移动魔百盒CM211-1_YS代工_S905L3B_RTL8822C_线刷固件包
  17. 回声状态网络(ESN)的公式推导及代码实现
  18. html线条倾斜代码,HTML5 居中斜向分割线切换的单页网页模板
  19. 树莓派 查看当前cpu温度
  20. 112358序列c语言,112358(112358的规律是什么)

热门文章

  1. Dubbo Data length too large: xxx, max payload: xxx问题解决
  2. eclipse maven配置usersetting时出现Could not read settings.xml
  3. 微信硬件平台从入门到精通(服务器端)
  4. 驱动调试(三)oops确定函数PC
  5. oops linux 内核,Linux内核的Oops
  6. 使用js动态控制html页面缩放
  7. GOJ 1211 -- 花开雷霆崖 简单分治算法的应用
  8. 「硬见小百科」EMC知识总结
  9. 深入理解UE4宏定义—— GENERATED_BODY
  10. UGUI_输入框Inputfield中英文字符限制,选中替换