您的位置:首页 > 其它

J - Convert QWERTY to Dvorak ZOJ - 3878 (模拟)

2017-04-30 13:51 489 查看
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.

<h4< dd="">
Output
The Dvorak document.

<h4< dd="">
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

<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
`~!@#$%^&*()+_-={}[]:"'<>,.?/\|
ABCDEFuvwxyz
AXJE>Ugk,qf;


Hint

题意:

键盘的位置被打乱了给你一串字符让你输出打乱以后的字符

我们用两个数组分别存储两个字符串

char
x[155]={"_-+=QqWwEeRrTtYyUuIiOoPp{[}]AaSsDdFfGgHhJjKkLl:;\"'ZzXxCcVvBbNnMm<,>.?/"};

char
y[155]={"{[}]\"'<,>.PpYyFfGgCcRrLl?/+=AaOoEeUuIiDdHhTtNnSs_-:;QqJjKkXxBbMmWwVvZz"};

然后找出对应的位置替换就好了

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char x[155]={"_-+=QqWwEeRrTtYyUuIiOoPp{[}]AaSsDdFfGgHhJjKkLl:;\"'ZzXxCcVvBbNnMm<,>.?/"};
char y[155]={"{[}]\"'<,>.PpYyFfGgCcRrLl?/+=AaOoEeUuIiDdHhTtNnSs_-:;QqJjKkXxBbMmWwVvZz"};
int num(char c)
{
for(int i=0;i<70;i++)
{
if(x[i]==c)
return i;
}
return -1;
}
int main()
{
char s[100003];
/* for(int i=0;i<71;i++)
printf("%c",x[i]);
printf("\n");
for(int j=0;j<71;j++)
printf("%c",y[j]);
printf("\n");
*/while(gets(s))
{
int l=strlen(s);
for(int i=0;i<l;i++)
{
if(num(s[i])==-1)
printf("%c",s[i]);
else printf("%c",y[num(s[i])]);
}
printf("\n");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: