博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PTA 模拟【string以及字母->数组下标】
阅读量:4947 次
发布时间:2019-06-11

本文共 3898 字,大约阅读时间需要 12 分钟。

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

[ 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

厂长的代码。。。。。。好看。。。

string s[]={
"0 ", "1,.?!", "2ABC", "3DEF", "4GHI", "5JKL", "6MNO", "7PQRS", "8TUV", "9WXYZ"};char ss[505];int main(){ while(~scanf("%s", ss)) { int n=strlen(ss)-1; n%=s[ss[0]-'0'].length(); putchar(s[ss[0]-'0'][n]); } puts(""); return 0;}

我的代码。。懒得改了//

。。。。

#include 
using namespace std;typedef long long LL;typedef unsigned long long ULL;typedef pair
PI;typedef pair< PI, int> PII;const double eps=1e-5;const double pi=acos(-1.0);const int mod=1e9+7;const int INF=0x3f3f3f3f;const int MAXN=1100;#define lson l, m, rt<<1#define rson m+1, r, rt<<1|1const int N=1e4+10;int n;char s[N];char ans[N];void solve(char c,int num){ if(c=='0'){ if(num==1) ans[n++]='0'; else ans[n++]=' '; } else if(c=='1'){ if(num==1){ ans[n++]='1'; } else if(num==2){ ans[n++]=','; } else if(num==3){ ans[n++]='.'; } else if(num==4){ ans[n++]='?'; } else if(num==0){ ans[n++]='!'; } } else if(c=='2'){ if(num==1){ ans[n++]='2'; } else if(num==2){ ans[n++]='A'; } else if(num==3){ ans[n++]='B'; } else if(num==0){ ans[n++]='C'; } } else if(c=='3'){ if(num==1){ ans[n++]='3'; } else if(num==2){ ans[n++]='D'; } else if(num==3){ ans[n++]='E'; } else if(num==0){ ans[n++]='F'; } } else if(c=='4'){ if(num==1){ ans[n++]='4'; } else if(num==2){ ans[n++]='G'; } else if(num==3){ ans[n++]='H'; } else if(num==0){ ans[n++]='I'; } } else if(c=='5'){ if(num==1){ ans[n++]='5'; } else if(num==2){ ans[n++]='J'; } else if(num==3){ ans[n++]='K'; } else if(num==0){ ans[n++]='L'; } } else if(c=='6'){ if(num==1){ ans[n++]='6'; } else if(num==2){ ans[n++]='M'; } else if(num==3){ ans[n++]='N'; } else if(num==0){ ans[n++]='O'; } } else if(c=='7'){ if(num==1){ ans[n++]='7'; } else if(num==2){ ans[n++]='P'; } else if(num==3){ ans[n++]='Q'; } else if(num==4){ ans[n++]='R'; } else if(num==0){ ans[n++]='S'; } } else if(c=='8'){ if(num==1){ ans[n++]='8'; } else if(num==2){ ans[n++]='T'; } else if(num==3){ ans[n++]='U'; } else if(num==0){ ans[n++]='V'; } } else if(c=='9'){ if(num==1){ ans[n++]='9'; } else if(num==2){ ans[n++]='W'; } else if(num==3){ ans[n++]='X'; } else if(num==4){ ans[n++]='Y'; } else if(num==0){ ans[n++]='Z'; } }}int main(){ gets(s); int len; char c; int num,flag; len=strlen(s); num=flag=n=0; for(int i=0;i

转载于:https://www.cnblogs.com/keyboarder-zsq/p/5934455.html

你可能感兴趣的文章
点在多边形内算法,C#判断一个点是否在一个复杂多边形的内部
查看>>
如何在移动设备上搭建服务器承载自己的全景作品?
查看>>
iOS SQLite3数据库操作
查看>>
除了 iOS 和 Android,世界第三大移动系统是什么?
查看>>
35.7. FAQ
查看>>
深搜算法实例:老鼠走迷宫(一)
查看>>
VMWare网络设置的3中方式(转)
查看>>
支付这条线上 谁在赚钱谁在哭?
查看>>
机器学习之朴素贝叶斯分类
查看>>
亚信安全参加第六届全国等保技术大会 态势感知助力“等保2.0”落地
查看>>
【设计模式系列】--抽象工厂
查看>>
JqueryValidate 动态添加验证
查看>>
双活数据中心的架构
查看>>
大数据公司Palantir融得7亿美元 曾追踪拉登
查看>>
先行者长虹佳华超融合市场沙龙在京举行
查看>>
建立备份策略的重要性
查看>>
小白用户如何轻松上云 -我的轻量应用服务器探索记
查看>>
BCG与阿里研究院等联合揭秘中国互联网经济:成功的关键是什么?
查看>>
发力IoT领域 Marvell注重生态系统发展
查看>>
数据中心网络布线工程必备七大件
查看>>