2017河南工业大学ACM邀请赛D题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017河南工业大学ACM邀请赛D题相关的知识,希望对你有一定的参考价值。
1263: rqy的键盘
时间限制: 1 秒 内存限制: 128 MB提交: 216 解决: 122
提交 状态
题目描述
rqy在和妹子约会,突然女票打来电话。rqy骗女票他在写代码。女票为了证实,问他键盘上F键左边是哪个键。
你能否帮助rqy回应女票的质问?不然他可就要写思想汇报了...
输入
输入数据第一行是一个整数 T(1≤T≤10000),表示测试数据的组数。
之后每一行先是一个大写字母X ,之后为一个字符串Left或Right,分别表示询问X键的左边或右边是哪个键。
输出
如果结果为一个字母键,输出该字母;否则输出No letter.。
样例输入
3 A Right B Left Q Left
样例输出
S V No letter.
思路:
简单的模拟题,查找键盘上左右两个字符
实现:
用一个常量字符串记录键盘,可以通过一些技巧减少代码量
代码:
1 //1263 2 //2017-04-25 01:10:13 3 #include<bits/stdc++.h> 4 using namespace std; 5 6 int main(){ 7 char key[] = " QWERTYUIOP ASDFGHJKL ZXCVBNM "; 8 int n = strlen(key); 9 int t; 10 scanf("%d", &t); 11 getchar(); 12 while(t--){ 13 char ch, op[10]; 14 scanf("%c %s\n", &ch, op); 15 int pos = 0; 16 for(pos = 0; pos < n; pos++) 17 if(ch == key[pos]) break; 18 if(op[0] == ‘R‘) pos++; 19 else if(op[0] == ‘L‘) pos--; 20 if(key[pos] == ‘ ‘) printf("No letter.\n"); 21 else printf("%c\n", key[pos]); 22 } 23 return 0; 24 }
以上是关于2017河南工业大学ACM邀请赛D题的主要内容,如果未能解决你的问题,请参考以下文章