ZOJ 3878-Convert QWERTY to Dvorak【模拟】



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:

ZOJ 3878-Convert QWERTY to Dvorak【模拟】_第1张图片
The QWERTY Layout
ZOJ 3878-Convert QWERTY to Dvorak【模拟】_第2张图片
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;
解题思路:
	直接模拟就行。
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char map[2000005];
char xx[]={"-=_+qwertyuiop[]QWERTYUIOP{}asdfghjkl;'ASDFGHJKL:\"zxcvbnm,./ZXCVBNM<>?"};
char yy[]={"[]{}',.pyfgcrl/=\"<>PYFGCRL?+aoeuidhtns-AOEUIDHTNS_;qjkxbmwvz:QJKXBMWVZ"};
int main()
{
	while(gets(map)!=NULL)
	{
		int j;
		int len=strlen(map);
		for(int i=0;i<len;i++)
		{
			j=0;
			bool cc=0;
			while(xx[j])
			{
				if(xx[j]==map[i])
				{
					cc=1;
					printf("%c",yy[j]);
					break;
				}
				else
				{
					j++;
				}
			}
			if(cc==0)
			printf("%c",map[i]);
		}
		printf("\n");
	}
	return 0;
}


你可能感兴趣的:(模拟,ZOJ)