Edward, a poor copy typist, is a user of the Dvorak Layout. But now he has only a QWERTY Keyboard with a broken Caps Lock key, so Edward never presses the broken Caps Lock key. Luckily, all the other keys on the QWERTY keyboard work well. Every day, he has a lot of documents to type. Thus he needs a converter to translate QWERTY into Dvorak. Can you help him?
The QWERTY Layout and the Dvorak Layout are in the following:
![]() |
The QWERTY Layout |
---|
|
![]() |
The Dvorak Layout |
---|
|
Input
A QWERTY document Edward typed. The document has no more than 100 kibibytes. And there are no invalid characters in the document.
Output
The Dvorak document.
Sample Input
Jgw Gqm Andpw a H.soav Patsfk f;doe Nfk Gq.d slpt a X,dokt vdtnsaohe Kjd yspps,glu pgld; aod yso kd;kgluZ 1234567890 `~!@#$%^&*()}"']_+-=ZQqWEwe{[\| ANIHDYf.,bt/ ABCDEFuvwxyz
Sample Output
Hi, I'm Abel, a Dvorak Layout user. But I've only a Qwerty keyboard. The following lines are for testing: 1234567890 `~!@#$%^&*()+_-={}[]:"'<>,.?/\| ABCDEFuvwxyz AXJE>Ugk,qf;
浙江省赛一道水题,模拟一个键盘,能按键替代的。我交了三遍WA,一直没搞明白为何WA了,然后我把输出改成一个个的输出,就AC了。。。我一直没弄懂原来的咋错了,求大神帮我看看。做这个题真是日狗了。。。莫名其妙啊……我把原来的代码注释了。下面是代码:
//#include <iostream>
//#include <stdio.h>
//#include <math.h>
//#include <stdlib.h>
//#include <string>
//#include <string.h>
//#include <algorithm>
//#include <vector>
//#include <queue>
//#include <set>
//#include <map>
//#include <stack>
//using namespace std;
//typedef long long LL;
//const int INF=0x7fffffff;
//const int MAX_N=10000;
//
//char A[10000];
//char c;
//char B[109];
//int main(){
// memset(A,0,sizeof(0));
// A['q']='\'';
// A['Q']='\"';
// A['w']=',';
// A['W']='<';
// A['e']='.';
// A['E']='>';
// A['r']='p';
// A['R']='P';
// A['t']='y';
// A['T']='Y';
// A['y']='f';
// A['Y']='F';
// A['u']='g';
// A['U']='G';
// A['i']='c';
// A['I']='C';
// A['o']='r';
// A['O']='R';
// A['p']='l';
// A['P']='L';
// A['[']='/';
// A['{']='?';
// A[']']='=';
// A['}']='+';
// A['s']='o';
// A['S']='O';
// A['d']='e';
// A['D']='E';
// A['f']='u';
// A['F']='U';
// A['g']='i';
// A['G']='I';
// A['h']='d';
// A['H']='D';
// A['j']='h';
// A['J']='H';
// A['k']='t';
// A['K']='T';
// A['l']='n';
// A['L']='N';
// A[';']='s';
// A[':']='S';
// A['\'']='-';
// A['"']='_';
// A['z']=';';
// A['Z']=':';
// A['x']='q';
// A['X']='Q';
// A['c']='j';
// A['C']='J';
// A['v']='k';
// A['V']='K';
// A['b']='x';
// A['B']='X';
// A['n']='b';
// A['N']='B';
// A[',']='w';
// A['<']='W';
// A['.']='v';
// A['>']='V';
// A['/']='z';
// A['?']='Z';
// A['-']='[';
// A['_']='{';
// A['=']=']';
// A['+']='}';
// memset(B,0,sizeof(B));
// int ct=0;
// while(scanf("%c",&c)!=EOF){
// if(c=='\n'){
// ct=0;
// printf("%s\n",B);
// memset(B,0,sizeof(B));
// }
// else{
// if(A[c]!=0){
// B[ct++]=A[c];
// }
// else B[ct++]=c;
// }
//
// }
// return 0;
//}
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string>
#include <string.h>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <stack>
using namespace std;
typedef long long LL;
const int INF=0x7fffffff;
const int MAX_N=10000;
char A[10000];
char c;
char B[109];
int main(){
memset(A,0,sizeof(0));
A['q']='\'';
A['Q']='\"';
A['w']=',';
A['W']='<';
A['e']='.';
A['E']='>';
A['r']='p';
A['R']='P';
A['t']='y';
A['T']='Y';
A['y']='f';
A['Y']='F';
A['u']='g';
A['U']='G';
A['i']='c';
A['I']='C';
A['o']='r';
A['O']='R';
A['p']='l';
A['P']='L';
A['[']='/';
A['{']='?';
A[']']='=';
A['}']='+';
A['s']='o';
A['S']='O';
A['d']='e';
A['D']='E';
A['f']='u';
A['F']='U';
A['g']='i';
A['G']='I';
A['h']='d';
A['H']='D';
A['j']='h';
A['J']='H';
A['k']='t';
A['K']='T';
A['l']='n';
A['L']='N';
A[';']='s';
A[':']='S';
A['\'']='-';
A['"']='_';
A['z']=';';
A['Z']=':';
A['x']='q';
A['X']='Q';
A['c']='j';
A['C']='J';
A['v']='k';
A['V']='K';
A['b']='x';
A['B']='X';
A['n']='b';
A['N']='B';
A[',']='w';
A['<']='W';
A['.']='v';
A['>']='V';
A['/']='z';
A['?']='Z';
A['-']='[';
A['_']='{';
A['=']=']';
A['+']='}';
memset(B,0,sizeof(B));
int ct=0;
while(scanf("%c",&c)!=EOF){
if(c=='\n'){
ct=0;
printf("\n");
}
else{
if(A[c]!=0){
printf("%c",A[c]);
}
else printf("%c",c);
}
}
return 0;
}