问题描述
把手放在键盘上时,稍不注意就会往右错一 位。这样,输入Q会变成输入W,输入J会变成输 入K等。键盘如图所示。
输入一个错位后敲出的字符串(所有字母均 大写),输出打字员本来想打出的句子。输入保 证合法,即一定是错位之后的字符串。例如输入中不会出现大写字母A。
样例输入
O S, GOMR YPFSU/
样例输出
I AM FINE TODAY.
解题思路:将键盘上的字符按从左到右、从上到下的顺序存放在数组中,然后查找输入字符前一个字符
AC的C++代码:
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
char a[]="`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";
int main()
{
string s;
int i,j;
while(getline(cin,s)){
for(i=0;i<s.length();i++){
for(j=1;j<strlen(a);j++){
if(s[i]==a[j]){
printf("%c",a[j-1]);
break;
}
}
if(j==strlen(a))
printf("%c",s[i]);
}
printf("\n");
}
return 0;
}