Convert QWERTY to Dvorak【The 12th Zhejiang Provincial Collegiate Programming Contest 】
2015-04-25 20:08
471 查看
查看题目
题意:相当于解码。将一种键盘输入的信息转换成另一种键盘的信息。
思路:这道题应该有规律可循,但比赛时实在想不出来,只好一个一个敲出来了。
经过改进之后,只是篇幅小了,其实还是一样的,只是将所有可能性存到字符串数组中,然后一一匹配。
题意:相当于解码。将一种键盘输入的信息转换成另一种键盘的信息。
思路:这道题应该有规律可循,但比赛时实在想不出来,只好一个一个敲出来了。
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using namespace std; char a[5000][5005]; char change(char a) { //printf("%c\n", a); if(a == '-') a = '['; else if(a == '_') a = '{'; else if(a == '=') a = ']'; else if(a == '+') a = '}'; else if(a == 'q') a = 39; else if(a == 'Q') a = 34; else if(a == 'w') a = ','; else if(a == 'W') a = '<'; else if(a == 'e') a = '.'; else if(a == 'E') a = '>'; else if(a == 'r') a = 'p'; else if(a == 'R') a = 'P'; else if(a == 't') a = 'y'; else if(a == 'T') a = 'Y'; else if(a == 'y') a = 'f'; else if(a == 'Y') a = 'F'; else if(a == 'u') a = 'g'; else if(a == 'U') a = 'G'; else if(a == 'i') a = 'c'; else if(a == 'I') a = 'C'; else if(a == 'o') a = 'r'; else if(a == 'O') a = 'R'; else if(a == 'p') a = 'l'; else if(a == 'P') a = 'L'; else if(a == '[') a = '/'; else if(a == '{') a = '?'; else if(a == ']') a = '='; else if(a == '}') a = '+'; else if(a == 's') a = 'o'; else if(a == 'S') a = 'O'; else if(a == 'd') a = 'e'; else if(a == 'D') a = 'E'; else if(a == 'f') a = 'u'; else if(a == 'F') a = 'U'; else if(a == 'g') a = 'i'; else if(a == 'G') a = 'I'; else if(a == 'h') a = 'd'; else if(a == 'H') a = 'D'; else if(a == 'j') a = 'h'; else if(a == 'J') a = 'H'; else if(a == 'k') a = 't'; else if(a == 'K') a = 'T'; else if(a == 'l') a = 'n'; else if(a == 'L') a = 'N'; else if(a == ';') a = 's'; else if(a == ':') a = 'S'; else if(a == 39) a = '-'; else if(a == 34) a = '_'; else if(a == 'z') a = ';'; else if(a == 'Z') a = ':'; else if(a == 'x') a = 'q'; else if(a == 'X') a = 'Q'; else if(a == 'c') a = 'j'; else if(a == 'C') a = 'J'; else if(a == 'v') a = 'k'; else if(a == 'V') a = 'K'; else if(a == 'b') a = 'x'; else if(a == 'B') a = 'X'; else if(a == 'n') a = 'b'; else if(a == 'N') a = 'B'; else if(a == ',') a = 'w'; else if(a == '<') a = 'W'; else if(a == '.') a = 'v'; else if(a == '>') a = 'V'; else if(a == '/') a = 'z'; else if(a == '?') a = 'Z'; return a; } int main() { int i, k, j, x; i = 0; while(gets(a[i]) != NULL){i++;} for(j = 0; j < i; j++) { k = strlen(a[j]); //printf("%s\n", a); for(x = 0; x < k; x++) printf("%c", change(a[j][x])); printf("\n"); } return 0; }
经过改进之后,只是篇幅小了,其实还是一样的,只是将所有可能性存到字符串数组中,然后一一匹配。
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using namespace std; char a[5000][5005]; char s1[100] = {"-=qwertyuiop[]asdfghjkl;'zxcvbnm,./_+WERTYUIOP{}ASDFGHJKL:ZXCVBNM<>?"}; char s2[100] = {"[]',.pyfgcrl/=aoeuidhtns-;qjkxbmwvz{}<>PYFGCRL?+AOEUIDHTNS:QJKXBMWVZ"}; char change(char a) { int i; int k; k = strlen(s1); for(i = 0; i < k; i++) { if(s1[i] == a) return s2[i]; } char c = '_'; //这里因为"这个符号不会存到字符串里 所以就单独拿出来喽 if(a == 34) return c; if(a == 'Q') return 34; else return a; } int main() { int i, k, j, x; i = 0; while(gets(a[i]) != NULL) { i++; } //k = strlen(s1); for(j = 0; j < i; j++) { k = strlen(a[j]); //printf("%s\n", a); for(x = 0; x < k; x++) printf("%c", change(a[j][x])); printf("\n"); } return 0; }
相关文章推荐
- ZOJ 3878 Convert QWERTY to Dvorak (The 12th Zhejiang Provincial Collegiate Programming Contest)
- zoj The 12th Zhejiang Provincial Collegiate Programming Contest Convert QWERTY to Dvorak
- zjuoj The 12th Zhejiang Provincial Collegiate Programming Contest Ace of Aces
- 140 - The 12th Zhejiang Provincial Collegiate Programming Contest(2015浙江省赛---第三部分)
- ZOJ 3875 Lunch Time (The 12th Zhejiang Provincial Collegiate Programming Contest )
- zoj The 12th Zhejiang Provincial Collegiate Programming Contest Demacia of the Ancients
- The 12th Zhejiang Provincial Collegiate Programming Contest -- 第七场选拔赛
- 140 - The 12th Zhejiang Provincial Collegiate Programming Contest(2015浙江省赛)
- The 12th Zhejiang Provincial Collegiate Programming Contest - D
- Ace of Aces【The 12th Zhejiang Provincial Collegiate Programming Contest】
- May Day Holiday【The 12th Zhejiang Provincial Collegiate Programming Contest】
- ZOJ 3876 May Day Holiday (The 12th Zhejiang Provincial Collegiate Programming Contest)
- ZOJ 3878 The 12th Zhejiang Provincial Collegiate Programming Contest - J
- 140 - The 12th Zhejiang Provincial Collegiate Programming Contest(第三部分)
- The 12th Zhejiang Provincial Collegiate Programming Contest->B-Team Formation
- The 12th Zhejiang Provincial Collegiate Programming Contest
- The 12th Zhejiang Provincial Collegiate Programming Contest(部分)
- ZOJ 3872 Beauty of Array (The 12th Zhejiang Provincial Collegiate Programming Contest )
- The 12th Zhejiang Provincial Collegiate Programming Contest - A
- The 12th Zhejiang Provincial Collegiate Programming Contest - G