ZOJ Problem Set - 3878||Convert QWERTY to Dvorak

来源:互联网 发布:linux 下的虚拟机 编辑:程序博客网 时间:2024/06/16 05:46
Convert QWERTY to Dvorak

Time Limit: 2 Seconds      Memory Limit: 65536 KB

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.

Output

The Dvorak document.

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

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;

浙江省第十二届大学生程序设计竞赛

看图大概就知道题目的意思了。刚开始没思路,在比赛的时候就直接用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;}


0 0