标签:io os for sp 数据 on ef line bs
题目:现有一种编码,他们在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;
}
UVa 740 - Baudot Data Communication Code
标签:io os for sp 数据 on ef line bs
原文地址:http://blog.csdn.net/mobius_strip/article/details/40112565