ZOJ3878 onvert QWERTY to Dvorak

来源:互联网 发布:破解软件网盘 编辑:程序博客网 时间:2024/05/23 21:55

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:

Qwerty LayoutThe QWERTY Layout
Dvorak LayoutThe 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.

<h4< dd="">
Output

The Dvorak document.

<h4< dd="">
Sample Input
Jgw Gqm Andpw a H.soav Patsfk f;doeNfk Gq.d slpt a X,dokt vdtnsaoheKjd yspps,glu pgld; aod yso kd;kgluZ1234567890`~!@#$%^&*()}"']_+-=ZQqWEwe{[\|ANIHDYf.,bt/ABCDEFuvwxyz
<h4< dd="">
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;


简单题,注意两个键盘中单词是如何对应的

#include <iostream>#include <string>#include <cstdio>#include <cstring>using namespace std;char fun(char c){    if (c == 'Q')        return '\"';    if (c == 'q')        return '\'';    if (c == 'W')        return '<';    if (c == 'w')        return ',';    if (c == 'E')        return '>';    if (c == 'e')        return '.';    if (c == 'R')        return 'P';    if (c == 'r')        return 'p';    if (c == 'T')        return 'Y';    if (c == 't')        return 'y';    if (c == 'Y')        return 'F';    if (c == 'y')        return 'f';    if (c == 'U')        return 'G';    if (c == 'u')        return 'g';    if (c == 'I')        return 'C';    if (c == 'i')        return 'c';    if (c == 'O')        return 'R';    if (c == 'o')        return 'r';    if (c == 'P')        return 'L';    if (c == 'p')        return 'l';    if (c == '{')        return '?';    if (c == '[')        return '/';    if (c == '}')        return '+';    if (c == ']')        return '=';    if (c == '-')        return '[';    if (c == '_')        return '{';    if (c == '+')        return '}';    if (c == '=')        return ']';    if (c == 'S')        return 'O';    if (c == 's')        return 'o';    if (c == 'D')        return 'E';    if (c == 'd')        return 'e';    if (c == 'F')        return 'U';    if (c == 'f')        return 'u';    if (c == 'G')        return 'I';    if (c == 'g')        return 'i';    if (c == 'H')        return 'D';    if (c == 'h')        return 'd';    if (c == 'J')        return 'H';    if (c == 'j')        return 'h';    if (c == 'K')        return 'T';    if (c == 'k')        return 't';    if (c == 'L')        return 'N';    if (c == 'l')        return 'n';    if (c == ':')        return 'S';    if (c == ';')        return 's';    if (c == '\"')        return '_';    if (c == '\'')        return '-';    if (c == 'Z')        return ':';    if (c == 'z')        return ';';    if (c == 'X')        return 'Q';    if (c == 'x')        return 'q';    if (c == 'C')        return 'J';    if (c == 'c')        return 'j';    if (c == 'V')        return 'K';    if (c == 'v')        return 'k';    if (c == 'B')        return 'X';    if (c == 'b')        return 'x';    if (c == 'N')        return 'B';    if (c == 'n')        return 'b';    if (c == '<')        return 'W';    if (c == ',')        return 'w';    if (c == '>')        return 'V';    if (c == '.')        return 'v';    if (c == '?')        return 'Z';    if (c == '/')        return 'z';    return c;}char c;int main(){//    freopen("in.txt", "r", stdin);    while (~scanf("%c", &c))        cout << fun(c);    return 0;}



0 0