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

模拟 ZOJ 3878 Convert QWERTY to Dvorak

时间:2015-04-26 15:09:00      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

 

题目传送门

 1 /*
 2     模拟:手敲map一一映射,累!
 3         除了忘记读入字符串不能用gets用getline外还是很顺利的AC了:)
 4 */
 5 #include <cstdio>
 6 #include <iostream>
 7 #include <algorithm>
 8 #include <cmath>
 9 #include <cstring>
10 #include <string>
11 #include <map>
12 #include <set>
13 #include <queue>
14 #include <vector>
15 using namespace std;
16 
17 const int MAXN = 1e2 + 10;
18 const int INF = 0x3f3f3f3f;
19 map<char, char> m;
20 string s;
21 
22 void solve(void)
23 {
24     m[~] = ~;   m[`] = `;
25     m[!] = !;   m[1] = 1;
26     m[@] = @;   m[2] = 2;
27     m[#] = #;   m[3] = 3;
28     m[$] = $;   m[4] = 4;
29     m[%] = %;   m[5] = 5;
30     m[^] = ^;   m[6] = 6;
31     m[&] = &;   m[7] = 7;
32     m[*] = *;   m[8] = 8;
33     m[(] = (;   m[9] = 9;
34     m[)] = );   m[0] = 0;
35     m[_] = {;   m[-] = [;
36     m[+] = };   m[=] = ];
37     m[Q] = ";   m[q] = \‘;
38     m[W] = <;   m[w] = ,;
39     m[E] = >;   m[e] = .;
40     m[R] = P;   m[r] = p;
41     m[T] = Y;   m[t] = y;
42     m[Y] = F;   m[y] = f;
43     m[U] = G;   m[u] = g;
44     m[I] = C;   m[i] = c;
45     m[O] = R;   m[o] = r;
46     m[P] = L;   m[p] = l;
47     m[{] = ?;   m[[] = /;
48     m[}] = +;   m[]] = =;
49     m[|] = |;   m[\\] = \\;
50     m[A] = A;   m[a] = a;
51     m[S] = O;   m[s] = o;
52     m[D] = E;   m[d] = e;
53     m[F] = U;   m[f] = u;
54     m[G] = I;   m[g] = i;
55     m[H] = D;   m[h] = d;
56     m[J] = H;   m[j] = h;
57     m[K] = T;   m[k] = t;
58     m[L] = N;   m[l] = n;
59     m[:] = S;   m[;] = s;
60     m["] = _;   m[\‘] = -;
61     m[Z] = :;   m[z] = ;;
62     m[X] = Q;   m[x] = q;
63     m[C] = J;   m[c] = j;
64     m[V] = K;   m[v] = k;
65     m[B] = X;   m[b] = x;
66     m[N] = B;   m[n] = b;
67     m[M] = M;   m[m] = m;
68     m[<] = W;   m[,] = w;
69     m[>] = V;   m[.] = v;
70     m[?] = Z;   m[/] = z;
71     m[ ] =  ;
72 }
73 
74 int main(void)      //ZOJ 3878 Convert QWERTY to Dvorak
75 {
76     //freopen ("J.in", "r", stdin);
77 
78     solve ();
79     while (getline (cin, s))
80     {
81         for (int i=0; s[i]; ++i)
82             cout << m[s[i]];
83         cout << endl;
84     }
85 
86     return 0;
87 }
88 
89 /*
90 Hi, I‘m Abel, a Dvorak Layout user.
91 But I‘ve only a Qwerty keyboard.
92 The following lines are for testing:
93 1234567890
94 `~!@#$%^&*()+_-={}[]:"‘<>,.?/\|
95 ABCDEFuvwxyz
96 AXJE>Ugk,qf;
97 */
技术分享
 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <string.h>
 4 #include <stack>
 5 #include <queue>
 6 #include <map>
 7 #include <set>
 8 #include <vector>
 9 #include <math.h>
10 #include <algorithm>
11 using namespace std;
12 #define ls 2*i
13 #define rs 2*i+1
14 #define up(i,x,y) for(i=x;i<=y;i++)
15 #define down(i,x,y) for(i=x;i>=y;i--)
16 #define mem(a,x) memset(a,x,sizeof(a))
17 #define w(a) while(a)
18 #define LL long long
19 const double pi = acos(-1.0);
20 #define Len 20005
21 #define mod 19999997
22 const int INF = 0x3f3f3f3f;
23 
24 char s1[]= {"-=_+qwertyuiop[]QWERTYUIOP{}asdfghjkl;‘ASDFGHJKL:\"zxcvbnm,./ZXCVBNM<>?"};
25 char s2[]= {"[]{}‘,.pyfgcrl/=\"<>PYFGCRL?+aoeuidhtns-AOEUIDHTNS_;qjkxbmwvz:QJKXBMWVZ"};
26 char c;
27 
28 char print(char c)
29 {
30     for(int i=0; s1[i]; i++)
31         if(s1[i]==c)
32             return s2[i];
33     return c;
34 }
35 int main()
36 {
37     w(~scanf("%c",&c))
38     printf("%c",print(c));
39 
40     return 0;
41 }
网上题解,两行,给跪了!

 

模拟 ZOJ 3878 Convert QWERTY to Dvorak

标签:

原文地址:http://www.cnblogs.com/Running-Time/p/4457671.html

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