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 `~!@#$%^&*()+_-={}[]:"'<>,.?/\| ABCDEFuvwxyzAXJE>Ugk,qf;
浙江省第十二届大学生程序设计竞赛
看图大概就知道题目的意思了。刚开始没思路,在比赛的时候就直接用switch case来一种一种情况列出来。还有当时一次就AC了。现在又有新的思路了。
#include <iostream> #include <stdio.h> #include <string.h> using namespace std; char s1[] = { "-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./_+QWERTYUIOP{}|ASDFGHJKL:\"ZXCVBNM<>?" }; char s2[] = { "[]',.pyfgcrl/=\aoeuidhtns-;qjkxbmwvz{}\"<>PYFGCRL?+|AOEUIDHTNS_:QJKXBMWVZ" }; int main() { int i,j; char s[100005]; while (gets(s)) { for (i = 0;i<strlen(s); i++) { for (j = 0; j < strlen(s1); j++) { if (s[i] == s1[j]) { printf("%c", s2[j]); break; } } if (j == strlen(s1)) printf("%c", s[i]); } printf("\n"); } return 0; }