J - Convert QWERTY to Dvorak
Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu
Description
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;
解题思路:本来想用map映射的,但是自己还不会用,就用了2个数组一一对应,在打这2个数组真的好累。
#include<bits/stdc++.h>
using namespace std;
char c[100050],d[100050];
char a[]=" 1234567890!@#$%^&*()_-+=QqWwEeRrTtYyUuIiOoPp{}[]|\\AaSsDdFfGgHhJjKkLl:;\"'ZzXxCcVvBbNnMm<,>.?/";
char b[]=" 1234567890!@#$%^&*(){[}]\"'<,>.PpYyFfGgCcRrLl?+/=|\\AaOoEeUuIiDdHhTtNnSs_-:;QqJjKkXxBbMmWwVvZz";
int main(void)
{
while(gets(c))
{
int len=strlen(c);
for(int i=0;i<len;i++)
{
char *j=strchr(a,c[i]);
if(j)
{
d[i]=b[j-a];
}
}
for(int i=0;i<len;i++)
cout<<d[i];
cout<<endl;
}
return 0;
}