题目
源地址:
理解
很简单的一道题,不过想了很久。我觉得需要注意的地方大概有三处:
- 不用自己手写所有情况的判断,使用一个字符串数组可以高效地解决问题。
- 可以采用一边读入一边处理的方法,不需要开一个数组来保存所有的数,更何况那样做还要处理空格和回车的问题。
- 读题的时候忽略了两处地方,多行以及没有
QAZ
这些字符,导致最后处理的时候出现了问题。 注意到这些,这道题就可以轻松A了。
代码
#define MAXN 50
char a[MAXN]="`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";
char b;
int len=strlen(a);
int main(int argc, char const *argv[])
{
while(~scanf("%c", &b))
{
if(b==' ') printf(" ");
else if(b=='\n') printf("\n");
else
{
for(int i=0;i<len;i++)
{
if(b==a[i]) printf("%c", a[i-1]);
}
}
}
return 0;
}
更新日志
- 2014年11月25日 已AC。