码迷,mamicode.com
首页 > 其他好文 > 详细

Convert QWERTY to Dvorak

时间:2015-07-17 22:24:45      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

 
Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu

Description

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
`~!@#$%^&*()+_-={}[]:"‘<>,.?/\|
ABCDEFuvwxyz
AXJE>Ugk,qf;
技术分享
#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
map<char,char>M;
void init(){
    M[-]=[;      M[A]=A;    M[X]=Q;
    M[_]={;     M[a]=a;    M[x]=q;
    M[+]=};      M[s]=o;    M[C]=J;
    M[=]=];      M[S]=O;    M[c]=j;
    M[Q]=";      M[D]=E;    M[V]=K;
    M[q]=\‘;     M[d]=e;    M[v]=k;
    M[W]=<;      M[F]=U;    M[B]=X;
    M[w]=,;      M[f]=u;    M[b]=x;
    M[E]=>;      M[G]=I;    M[N]=B;
    M[e]=.;      M[g]=i;    M[n]=b;
    M[R]=P;      M[H]=D;    M[M]=M;
    M[r]=p;      M[h]=d;    M[m]=m;
    M[T]=Y;      M[j]=h;    M[<]=W;
    M[t]=y;      M[K]=T;    M[,]=w;
    M[Y]=F;      M[J]=H;    M[>]=V;
    M[y]=f;      M[k]=t;    M[.]=v;
    M[U]=G;      M[L]=N;    M[?]=Z;
    M[u]=g;      M[l]=n;    M[/]=z;
    M[I]=C;      M[:]=S;    M[{]=?;
    M[i]=c;      M[;]=s;    M[[]=/;
    M[O]=R;      M["]=_;    M[}]=+;
    M[o]=r;      M[\‘]=-;   M[]]==;
    M[P]=L;      M[Z]=:;
    M[p]=l;      M[z]=;;
}
int main(){
    init();
    string str;
    while(getline(cin,str)){
        for(int i=0;i<str.length();i++){
                if(M.count(str[i]))cout<<M[str[i]];
                else cout<<str[i];
        }
        cout<<endl;
    }
return 0;
}
View Code

 

Convert QWERTY to Dvorak

标签:

原文地址:http://www.cnblogs.com/demodemo/p/4655737.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!