问题 D: rqy的键盘
题目描述
rqy在和妹子约会,突然女票打来电话。rqy骗女票他在写代码。女票为了证实,问他键盘上F键左边是哪个键。
你能否帮助rqy回应女票的质问?不然他可就要写思想汇报了...
输入
输入数据第一行是一个整数 T(1≤T≤10000),表示测试数据的组数。
之后每一行先是一个大写字母X ,之后为一个字符串Left或Right,分别表示询问X键的左边或右边是哪个键。
输出
如果结果为一个字母键,输出该字母;否则输出No letter.。
样例输入
3A RightB LeftQ Left
样例输出
SVNo letter.
解题思路:
打表出键盘上26字母,然后判断下边界即可。
代码:
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
char s[26]={'Q','W','E','R','T','Y','U','I','O','P','A','S','D','F','G','H','J','K','L','Z','X','C','V','B','N','M'};
char c[10],s1[11];
int main()
{
int T;
cin>>T;
while(T--)
{
scanf("%s%s",c,s1);
if(s1[0]=='L'&&(c[0]=='Q'||c[0]=='A'||c[0]=='Z'))
{
cout<<"No letter."<<endl;
continue;
}
if(s1[0]=='R'&&(c[0]=='P'||c[0]=='L'||c[0]=='M'))
{
cout<<"No letter."<<endl;
continue;
}
for(int i=0;i<26;i++)
{
if(c[0]==s[i])
{
if(s1[0]=='L') cout<<s[i-1]<<endl;
else cout<<s[i+1]<<endl;
break;
}
}
}
}