AcWing 3544. 寻找变化前的01序列
原题链接
简单
3544. 寻找变化前的01序列
给你一个 01 序列,HDLC 协议处理的话,如果出现连续的 5 个 1 会补 1 个 0。
例如 1111110,会变成 11111010。
现在给你一个经过 HDLC 处理后的 01 序列,你需要找到 HDLC 处理之前的 01 序列。
例如给你 11111010,你需要输出 1111110。
输入格式
第一行一个整数 N,表示共有 N 组测试数据。
每组数据占一行,包含一个 01 序列。
输出格式
每组数据输出一行结果,为处理之前的 01 序列。
数据范围
1≤N≤100,
01 序列长度不超过 100。
输入样例:
2
11111010
1111100
输出样例:
1111110
111110
#include<iostream>
using namespace std;
int main(){
int n;
cin >> n;
while(n --){
string a;
cin >> a;
string b="";
int i=0;
int m=a.size();
for(int j=0;j<m;j++)
{
if(a[j]=='1')
{
i++;
b+="1";
}//将a字符串中数据存入s,判断1连续出现次数
else
{
b+="0";
i=0;
}//出现0,计数归零
if(i==5)
{
i=0;
j++;
}
}
cout<<b<<endl;
}
}