给你一个 01 序列,如果出现连续的 3 个 1 会补 1 个 0。
例如 1111110,会变成 111011100。
现在给你一个经过处理后的 01 序列,你需要找到处理之前的 01 序列。
例如给你 111011100,你需要输出 1111110。
输入格式:
第一行一个整数 N,表示共有 N 组测试数据(1≤N≤100 )。
每组数据占一行,包含一个 01 序列(01 序列长度不超过 100)。
输出格式:
每组数据输出一行结果,为处理之前的 01 序列。
输入样例:
2
1110111010
11101100
输出样例:
11111110
1111100
代码如下:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
string s;
for (int i = 0; i < n; i++)
{
cin >> s;
int len = s.length();
int cnt = 0;
for (int j = 0; j < len; j++)
{
if (s[j] == '1')
{
cnt++;
if (cnt == 3)
{
s.erase(j+1, 1);
cnt = 0;
}
}
else
cnt = 0;
}
cout << s << endl;
}
return 0;
}