BUPT复试专题—寻找变化前01序列(2016)
题目描述
给你一个01序列,HDLC协议处理的话,如果出现连续的5个1会补1个0。例如1111110,会变成11111010。
现在给你一个经过HDLC处理后的01序列,你需要找到HDLC处理之前的01序列。
例如给你11111010
你需要输出1111110
输入
输入正整数N,表示N例测试。接着输入N组数据,每组输入经过HDLC处理过的01序列(长度小于100)。
输出
对每组输入数据,输出HDLC处理前的01序列。
样例输入
2 11111010 1111100
样例输出
1111110 111110
来源
#include<iostream> #include<cstring> #include<iostream> #include<ctime> #include<cstdlib> #include<cstdio> #define maxn 105 using namespace std; char a[maxn]; int main() { int tes,len; int i; while(cin>>tes) { while(tes--) { cin>>a; len=strlen(a); int cnt=0; for(i=0; i<len; i++) { if(a[i]=='1') { cout<<a[i]; cnt++; if(cnt==5) { i++; cnt=0; } } else { cout<<a[i]; cnt=0; } } cout<<endl; } } return 0; }