题目:现有一种编码,他们在shift键处于按下和升起时,对应两种编码,其中有2个编码对应shift操作。
给你对应的编码值,求其对应的字符串。
分析:模拟,字符串。简单题,标记shift的升降分类处理即可。
说明:数据量较小,直接扫描查询即可。
#include <iostream> #include <cstdlib> #include <string> #include <cstdio> using namespace std; #define down 1 #define up 0 string ushift,dshift,buf; int code(int space) { int value = 0; for (int i = 0 ; i < 5 ; ++ i) { value <<= 1; value += buf[space+i]-'0'; } return value; } int main() { getline(cin, dshift); getline(cin, ushift); while (getline(cin, buf)) { int state = down; for (int i = 0 ; i < buf.length() ; i += 5) { int value = code(i); if (value == 27) { state = down; }else if (value == 31) { state = up; }else if (state == down) cout << dshift[value]; else cout << ushift[value]; } cout << endl; } return 0; }
时间: 2024-10-06 00:53:37